跟踪列表框中的项目

时间:2009-05-17 09:18:13

标签: c# .net winforms

我是.net新手开始一个有趣的项目。 我正在使用填充了一些城市名称的列表框,以便用户可以选择一个。 每个城市类都有名称和UID。我如何知道哪个城市用户点击了? 显然,我可以获得所选项目的文本,贯穿城市列表和 找到一个名字,但这似乎很愚蠢。

是否有相当于MFC SetItemDataPtr类型的东西或者是什么 最常见的做法是什么?

4 个答案:

答案 0 :(得分:3)

假设您指的是WinForms ListBox,可以通过以下方式完成此操作。

您可以将其设置为用户定义类型的集合,而不是将Items的{​​{1}}设置为数组/字符串集合(正如我假设您当前正在做的那样)。 (在您的情况下为ListBox),然后使用DisplayMember属性(设置为City或您想要显示的Name类的属性),以便City中的每个项目实际上都可以作为用户定义的ListBox对象进行访问,而它仍然由City属性显示。

答案 1 :(得分:1)

我会使用ListView(在详细模式下)而不是ListBox。然后你可以使用ListViewItem的Tag属性,它相当于MFC的SetItemDataPtr。

答案 2 :(得分:0)

您可以通过以下代码获取用户选择的项目:

list1.SelectedItem;

//text -> list1.SelectedItem.Text
//value-> list1.SelectedItem.Value

答案 3 :(得分:0)

您可以为ListBox提供自定义类型的项,因为它接受Object,最好是实现ToString()方法。它可以是具有ID和Name属性的对象,因此可以使用ListBox的SelectedItem属性访问它们。