如何通过ValueMember选择列表框项目

Mic*_*rst 5 .net c# listbox winforms

如果我有两个具有相同DisplayMember但具有不同ValueMember的项目,并且我想以编程方式选择这两个项目中的一个,我该怎么做?

项目:

123 -> Peter Pan
234 -> John Doe
345 -> Peter Pan
Run Code Online (Sandbox Code Playgroud)

我不能选择最后一个彼得潘

Listbox1.FindStringExact("Peter Pan");
Run Code Online (Sandbox Code Playgroud)

因为这只返回第一次出现以下也不起作用,因为它只设置所选项目,但不会在列表中显示:

Listbox1.SelectedItem = dataTable.Rows.Find(345);
Run Code Online (Sandbox Code Playgroud)

谁可以帮我这个?

更新:

我自己找到了更多信息,列表已经排序,因此当我更新DataTable(用于填充列表)时,列表就被使用了,它似乎选择了代替已编辑项目的项目.

Listbox1.FindStringExact仅在DisplayMember不同时才起作用

Fré*_*idi 4

您可以使用列表控件的SelectedValue属性:

Listbox1.SelectedValue = 345;
Run Code Online (Sandbox Code Playgroud)