winforms C#组合框.SelectedValue未按预期工作

uyhoqukh  于 2022-11-16  发布在  C#
关注(0)|答案(2)|浏览(272)

我有一个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;
};

我像下面这样设置组合框的值,但它什么也不做,它将值设置为“Type1”(即使我不使用SelectedValue,它也会这样做)。我无法通过编程设置值。而且,当我调试时,在执行SelectedValue后,cmbType.SelectedValue的值仍然是null

cmbType.SelectedValue = 2;

我也试过这样做,但还是一样:

cmbType.SelectedValue = "2";

如果我遗漏了什么,请帮助我。

hrysbysz

hrysbysz1#

是否要将默认值设置为type1?

cmbType.SelectedIndex = 0;
ki1q1bka

ki1q1bka2#

我发现这个线程在这里是为我工作:
Why ComboBox.SelectedValue does not work...
我更新了我的代码如下,它现在工作:

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();**

相关问题