我一直使用设计器将我的项目填充到一个combox中,并且我传递的是一个字符串。
虽然现在我需要控制每个项目存储哪个键/索引。
我以为有一个项目对象,但我查看了方法ADD并接受了对象..
如何传递控件中的键/索引,即当我执行SelectedItem时返回的内容。
因此,如果我选择了文本,我会返回一个显示在当前所选下拉列表中的字符串,但如果我选择了我想要获取一个我需要存储的自定义数字...
任何想法如何做到这一点?
提前致谢
答案 0 :(得分:5)
您需要将其绑定到key \ value对象的集合,并使用DisplayMember和ValueMember属性来设置显示/返回的内容。
以下是一个例子:
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