WinForm ComboBox SelectedValue属性vs SelectedIndex

时间:2017-09-06 00:46:35

标签: winforms

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

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

当用户从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 假 ? UniqueIndexComboBox.SelectedValue == null 真

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

1 个答案:

答案 0 :(得分: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";