combobox.items[Index].Value = xxx;
解决方案 »
- 动态加载卸载DLL文件
- 关于一串字符串解析的方法,求解
- Vc#中USB设备与PC机的数据传输问题
- 别人开发的软件,用FTP实现数据上传,我如何才能获得它上传数据的格式??
- 哪里有用cookie控制 asp页面访问的 asp源码(c#)下载?
- 请问怎么样在没有标题栏没有边框的窗中模拟一块非客户区(比如在原来的标题栏的位置)?
- 使用oracle存储过程运行报错,PL/SQL: Statement ignored
- C#串口发送命令出现“由于线程退出或应用程序请求,以放弃I/O操作“的问题
- 远程服务器返回错误: (401) 未经授权。?这是什么意思?如何解决?
- 设计界面
- 如何将dataGridView中的变化,在数据库中也进行自动更新
- C#里的窗体自动关闭问题 急!!!
好像不支持吧!
{
public string str;
public int value;
} private void button2_Click(object sender, EventArgs e)
{
for (int i = 0; i < 10; i++)
{
AA aa = new AA();
aa.str = "序号:" + i.ToString();
aa.value = i;
comboBox1.Items.Add(aa);
}
}程序编译没有问题,运行也不会报错,而且每一项的值都是正确的,但实际应用是有问题的的(它不会显示"序号:" + i.ToString()),你试试就会知道,问题出在: comboBox1.Items.Add(aa);
虽然Add的参数是object,但combobox设计的目的是显示“一列”的值,有点类似数据库表的一列,所以你把两列的值强制放在一起,它根本就不会显示出来。要实行多列这种需求,其实也很简单:你只需先把所有的值存放到一个集合里(ArrayList),然后comboBox1.Items.Add("序号:" + i.ToString());(填充任一列都行),最后在combobox的SelectedIndexChanged 事件里得到相应索引,根据这个索引直接从ArrayList取值即可。
http://ehuae.blog.163.com/blog/getBlog.do?bid=_fks_rbEyhMMw3n2pMhUl2PwYOOvqLLdvqNSs
如果是自定义对象,那么显示出来的文字是该对象ToString()方法输出的内容。
那么这个对象的全部属性都可以做为combobox的其它可用值了。
天呀,竟然不能像DropDownList那样直接使用键值对的方式
百度了半天,终于找到方法,发出来大家共享
用DataTable可以!但是总不能象男,女这样两项也用一个DataTable吧, 这也太麻烦了啊!
用Hashtable,SortedList直接添加键值对都报错了!
经过我多方的考究,最后终于搞定了,就用ArrayList就可以了!
代码可以这样写!
ArrayList mylist = new ArrayList();
mylist.Add (new DictionaryEntry ("1","坏"));
mylist.Add (new DictionaryEntry ("2","不好"));
mylist.Add (new DictionaryEntry ("3","一般"));
mylist.Add (new DictionaryEntry ("4","好"));
mylist.Add (new DictionaryEntry ("5","太好了"));
comboBox1.DataSource =mylist;
comboBox1.DisplayMember ="Value";
comboBox1.ValueMember ="Key";
转自:http://hi.baidu.com/twmp/blog/item/11d2e7340b379eb3d1a2d334.html