ListBox多选获取所有选中值

Mr.*_*ast 7 c# datatable listbox winforms

我有一段时间遇到问题了,只是找不到任何适合我的解决方案。我有一个ListBox里面装满了DataTable类似的东西

listbox.DataSource = table;  
listbox.Displaymember = "Name";    
listbox.ValueMember = "ID";
Run Code Online (Sandbox Code Playgroud)

如果我现在在列表框中选择一个项目,我可以将其取出,如下所示:

listbox.SelectedValue.toString();
Run Code Online (Sandbox Code Playgroud)

我的问题:

如果我想从ListBox启用了多重选择的地方获取所有选定的值并将它们全部保存在数组或类似的东西中,我该怎么办?

我无法使用,SelectedItems因为它没有给我提供我需要的信息。

C1s*_*sc0 5

或者,如果您只想迭代所选项目,您可以使用SelectedIndices属性:

foreach (int i in listbox.SelectedIndices)
{
    // listbox.Items[i].ToString() ...
}
Run Code Online (Sandbox Code Playgroud)

或者:

foreach (var item in listbox.SelectedItems)
{
    MessageBox.Show(item.ToString());
}
Run Code Online (Sandbox Code Playgroud)


Sal*_*ari 4

尝试这个:

var lst = listBox1.SelectedItems.Cast<DataRowView>();
foreach (var item in lst)
{
     MessageBox.Show(item.Row[0].ToString());// Or Row[1]...
}
Run Code Online (Sandbox Code Playgroud)