C# 跟踪列表框中的项目

C# 跟踪列表框中的项目,c#,.net,winforms,C#,.net,Winforms,我是.net新手,为了好玩而开始一个项目。 我正在使用一些城市名称填充的列表框,以便用户可以选择一个。 每个城市类都有名称和UID。我如何知道哪个城市的用户点击了? 显然,我可以获得所选项目的文本,浏览城市列表和 找到一个名字,但这似乎很愚蠢 是否有等同于MFC SetItemDataPtr类型的东西或是什么 最常用的方法是什么?您可以通过以下代码获得用户选择的项目: list1.SelectedItem; //text -> list1.SelectedItem.Text //valu

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

是否有等同于MFC SetItemDataPtr类型的东西或是什么
最常用的方法是什么?

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

list1.SelectedItem;

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

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

list1.SelectedItem;

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

假设您引用的是WinForms,可以通过以下方式完成


与其将
列表框的
项设置为字符串的数组/集合(我假设您当前正在这样做),不如将其设置为用户定义类型的集合(
City
),然后使用属性(设置为
Name
或要显示的
City
类的任何属性),这样,
列表框
中的每个项目实际上都可以作为用户定义的
城市
对象进行访问,而它仍然通过其
名称
属性进行显示。

假设您引用的是WinForms,可以通过以下方式进行操作


与其将
列表框的
项设置为字符串的数组/集合(我假设您当前正在这样做),不如将其设置为用户定义类型的集合(
City
),然后使用属性(设置为
Name
或要显示的
City
类的任何属性),这样,
列表框
中的每个项目实际上都可以作为用户定义的
城市
对象访问,而它仍然通过其
名称
属性显示。

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

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

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

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

这正是我要找的。谢谢!这正是我要找的。谢谢!我只是在搜索这个:)谢谢!我只是在搜索这个:)谢谢!