【发布时间】:2011-08-03 23:40:16
【问题描述】:
有没有人知道一个控件,例如检查列表框,其中每个项目都可以有一个值。
例如,您有一个水果列表,在列表框中显示 Apple、Orange 和 Banana,但这些项目的值是 A、O 和 B。
【问题讨论】:
有没有人知道一个控件,例如检查列表框,其中每个项目都可以有一个值。
例如,您有一个水果列表,在列表框中显示 Apple、Orange 和 Banana,但这些项目的值是 A、O 和 B。
【问题讨论】:
CheckedListBox 控件已经可以做到这一点。它的Items 集合接受从System.Objects 派生的任何对象。这些对象使用从其ToString 方法返回的值显示在列表中。
因此,您可以创建自己的自定义类并将它们添加到CheckedListBox。确保重载ToString 方法以返回要在列表框中显示的字符串。然后,您可以将任何其他方法或属性添加到您想要的类。当您获得对选定项目的引用时,可以将其强制转换为您的 Fruit 类并调用您想要的任何方法。
【讨论】:
我认为这是 .Net 列表框、组合框等的默认功能。
如果您的列表框有一个数据源,其中的项目具有 FruitName 和 FruitId 属性,您可以将 DisplayMember 设置为 FruitName,将 ValueMember 设置为 FruitId。
在选择一个项目时,SelectedValue 将是 FruitId。
【讨论】:
什么平台?如果是 HTML,那么<select /> 标签可以有不同的值和显示字符串。
如果您正在使用 Winforms,您可以将 ListBox 设置为具有任何类型的对象。所以你可以创建一个类,它有一个用于显示的字符串和某种对象作为它的值。然后重写ToString() 方法并返回显示字符串就可以了!
【讨论】:
.net。这就是我添加两者的原因。而且我知道 .net 也适用于台式机,但它经常用于网络问题