C#ComboBox.SelectedValue未按预期工作



我有一个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();**

最新更新