我有一个WinForms应用程序。我在组合框中添加了一个数据源,如下所示:
数据源:
public static Dictionary<byte, string> Ltype = new Dictionary<byte, string>()
{
{1 , "Type1"},
{2 , "Type2"},
{3 , "Type3"},
{4 , "Type4"}
};
组合框初始化:
cmbType.DataSource = new BindingSource(Ltype, null);
cmbType.DisplayMember = "Value";
cmbType.ValueMember = "Key";
cmbType.KeyUp += (s, e) =>
{
cmbType.DroppedDown = true;
};
我设置了combobox的值,如下所示,但它什么也没做——它将值设置为"0";类型1";(即使我不使用SelectedValue,它也会如此(。我无法用程序设置该值。同样,当我调试时,在执行SelectedValue之后,cmbType.SelectedValue
的值仍然是null
。
cmbType.SelectedValue = 2;
我也尝试过做这样的事情,但仍然是一样的:
cmbType.SelectedValue = "2";
如果我遗漏了什么,请帮帮我。
是否将默认值设置为type1?
cmbType.SelectedIndex = 0;
我在这里找到了这个线程,它正在为我工作:
为什么ComboBox.SelectedValue不起作用。。。
我更新了我的代码如下,它现在正在工作:
cmbType.DataSource = new BindingSource(gltype, null);
//cmbType.DisplayMember = "Key";
//cmbType.ValueMember = "Value";
cmbType.DisplayMember = "Value";
cmbType.ValueMember = "Key";
cmbType.KeyUp += (s, e) =>
{
cmbType.DroppedDown = true;
};
*//added new line*
**cmbType.BindingContext = new BindingContext();**