WinForms / C#:向Combox添加项目并控制Item值(数字)

时间:2011-01-14 13:52:36

标签: c# winforms controls combobox

我一直使用设计器将我的项目填充到一个combox中,并且我传递的是一个字符串。

虽然现在我需要控制每个项目存储哪个键/索引。

我以为有一个项目对象,但我查看了方法ADD并接受了对象..

如何传递控件中的键/索引,即当我执行SelectedItem时返回的内容。

因此,如果我选择了文本,我会返回一个显示在当前所选下拉列表中的字符串,但如果我选择了我想要获取一个我需要存储的自定义数字...

任何想法如何做到这一点?

提前致谢

1 个答案:

答案 0 :(得分:5)

您需要将其绑定到key \ value对象的集合,并使用DisplayMemberValueMember属性来设置显示/返回的内容。

以下是一个例子:

public class ComboItem
{
    public string stringValue { get; set; }
    public int indexValue { get; set; }
}

public void LoadCombo()
{
     List<ComboItem> list = new List<ComboItem>();
     // populate list...
     // then bind list
     myComboBox.DisplayMember = "stringValue";
     myComboBox.ValueMember = "indexValue";
     myComboBox.DataSource = list;
}

然后

myComboBox.SelectedText       // will return stringValue
myComboBox.SelectedValue      // will return indexValue
myComboBox.SelectedItem       // will return the ComboItem itself
myComboBox.SelectedIndex      // will return the items index in the list

或者,您可以通过添加Tag属性(通常用于存储此类内容)来存储索引,方法是创建自定义组合项have a read here for how to do this