Solution 1:
不想用绑定的话,自已写一个实现Value和Text属性的类,然后重写ToString()方法,并返回和Text属性一样的值,然后把这个类的实际Add到ComboBox.Items中,取值时再转换一下类型.
当你往ComboxBox的Item中扔一个任意object时,显示出的内容就是这个object的ToString()方法.所以必须重写ToString()方法,来显示你要显示的内容.
Solution 2:
不妨定义一个两列的DataTable为comboBox为数据源,将其与ComboBox绑定,添加事件时只要往这个DataTable添加行就可以了。
DataTable dt;
private void Form1_Load(object sender, System.EventArgs e)
{
dt = new DataTable("dt");
dt.Columns.Add("dtText");
dt.Columns.Add("dtValue");
comboBox1.DataSource = dt;
comboBox1.DisplayMember = "dtText";
comboBox1.ValueMember = "dtValue";
}
private void button2_Click(object sender, System.EventArgs e)
{
dt.Rows.Add(new object[]{"Text",value});
}
Solution 3:
还有这样一个类,可以专门用来向列表控件添加列表项,这个类就是 DictionaryEntry ,关于这个类的使用方法及其相关介绍,你可以在你的MSDN中找到,如果您没有安装MSDN,请点击这里
Do While Reader.Read
ComboBox1.Items.Add(New DictionaryEntry(Reader.Item("显示字段"), Reader.Item("值字段")))
Loop
ComboBox1.DisplayMember = "Key"
ComboBox1.ValueMember = "Value"
在使用DictionaryEntry对象向列表控件添加数据后, 如果要得到被选定项的“显示的文本”或“项的值”,那么,请使用如下的写法,
Dim strValue As String = CType(ComboBox1.SelectedItem, DictionaryEntry).Value
Dim strKey As String = CType(ComboBox1.SelectedItem, DictionaryEntry).Key