首页 文章

WinForm ComboBox SelectedValue属性vs SelectedIndex

提问于
浏览
2

我正在为Comboxbox中的每个项目添加一个“索引”对象

foreach(索引中的var索引){UniqueIndexComboBox.Items.Add(index); }

当用户从drop中选择一个索引项时,将触发以下事件 . 我不确定区别 .

private void UniqueIndexComboBox_SelectedValueChanged(object sender,EventArgs e)private void UniqueIndexComboBox_SelectedIndexChanged(object sender,EventArgs e)

当我整合以下属性时,SelectedValue始终为null但我仍然可以通过使用SelectedIndex值作为项目列表的索引来访问所选的Index值 .

使用WinForm ComboBox,为什么选择? UniqueIndexComboBox.Items [UniqueIndexComboBox.SelectedIndex] == null false? UniqueIndexComboBox.SelectedValue == null true

为什么SelectedValue选项也不起作用? DropDownStyle属性的值是否相关?

1 回答

  • 0

    SelectedIndex是基于零的索引号(间接位置号)SelectedValue是所选项的实际值(对用户不可见) . 在您的情况下,SelectedValue始终为null,因为您没有提供它,如下所示 .

    要实现ComboBox的SelectedValue,组合框应该设置它的DataSource属性而不是Items.Add()方法

    例如

    var items = new List<object>();
            for (int i = 1; i <= 10; i++)
            {
                items.Add(new { Value = i, Text = "Text "+i });
            }
    
            comboBox1.DataSource = items;
            comboBox1.DisplayMember = "Text";
            comboBox1.ValueMember = "Value";
    

相关问题