在C#的winform中,我们都发现comboBox没有一个能绑定内容的容器,而此外的控件都有一个tag属性用来绑定信息,也没有仔细查过,vs为什么这么设计,不过有一种方法能够解决这个问题。
(1)我们创建一个ComboBoxItem类:
public class ComboBoxItem
{
private string _text = null;
private object _value = null;
public string Text { get { return this._text; } set { this._text = value; } }
public object Value { get { return this._value; } set { this._value = value; } }
public override string ToString()
{
return this._text;
}
}
(2)在添加的时间,我们将这个类的列表添加到comboBox的item属性中:
private void Form1_Load(object sender, EventArgs e)
{
ComboBoxItem cbi1 = new ComboBoxItem();
cbi1.Text = "测试Test1";
cbi1.Value = "测试Value1";
comboBox1.Items.Add(cbi1);
ComboBoxItem cbi2 = new ComboBoxItem();
cbi2.Text = "测试Test2";
cbi2.Value = "测试Value2";
comboBox1.Items.Add(cbi2);
}
(3)在我们使用的时候:
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.Items != null && comboBox1.Items.Count > 0 && comboBox1.SelectedItem != null)
{
string text = ((ComboBoxItem)comboBox1.SelectedItem).Text;
object vlaue = ((ComboBoxItem)comboBox1.SelectedItem).Value;
}
}
(1)我们创建一个ComboBoxItem类:
public class ComboBoxItem
{
private string _text = null;
private object _value = null;
public string Text { get { return this._text; } set { this._text = value; } }
public object Value { get { return this._value; } set { this._value = value; } }
public override string ToString()
{
return this._text;
}
}
(2)在添加的时间,我们将这个类的列表添加到comboBox的item属性中:
private void Form1_Load(object sender, EventArgs e)
{
ComboBoxItem cbi1 = new ComboBoxItem();
cbi1.Text = "测试Test1";
cbi1.Value = "测试Value1";
comboBox1.Items.Add(cbi1);
ComboBoxItem cbi2 = new ComboBoxItem();
cbi2.Text = "测试Test2";
cbi2.Value = "测试Value2";
comboBox1.Items.Add(cbi2);
}
(3)在我们使用的时候:
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.Items != null && comboBox1.Items.Count > 0 && comboBox1.SelectedItem != null)
{
string text = ((ComboBoxItem)comboBox1.SelectedItem).Text;
object vlaue = ((ComboBoxItem)comboBox1.SelectedItem).Value;
}
}
设置默认值: comboBox1.SelectedIndex = 0;