C# 列表框多选获取所有选定值

C# 列表框多选获取所有选定值,c#,winforms,datatable,listbox,C#,Winforms,Datatable,Listbox,我有一个问题,因为一段时间以来,现在只是找不到任何解决办法,对我来说。我有一个列表框,里面充满了数据表 listbox.DataSource = table; listbox.Displaymember = "Name"; listbox.ValueMember = "ID"; 如果我现在在我的列表框中选择一个项目,我可以将其取出,如下所示: listbox.SelectedValue.toString(); 我的问题是: 如果我想从启用了多重选择的列表框中选择所有值,并将它们全

我有一个问题,因为一段时间以来,现在只是找不到任何解决办法,对我来说。我有一个
列表框
,里面充满了
数据表

listbox.DataSource = table;  
listbox.Displaymember = "Name";    
listbox.ValueMember = "ID";
如果我现在在我的列表框中选择一个项目,我可以将其取出,如下所示:

listbox.SelectedValue.toString();
我的问题是:

如果我想从启用了多重选择的
列表框
中选择所有值,并将它们全部保存在数组或类似的东西中,我该怎么办


我不能使用
SelectedItems
因为它没有提供我所需的信息。

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

foreach (int i in listbox.SelectedIndices)
{
    // listbox.Items[i].ToString() ...
}
或:

试试这个:

var lst = listBox1.SelectedItems.Cast<DataRowView>();
foreach (var item in lst)
{
     MessageBox.Show(item.Row[0].ToString());// Or Row[1]...
}
var lst=listBox1.SelectedItems.Cast();
foreach(lst中的var项目)
{
MessageBox.Show(item.Row[0].ToString();//或行[1]。。。
}

对于您的第一个选项,它告诉我。选定的“对象”不包含“选定”的定义。第二个选项,它在.GetSelectedIndices()下告诉我类似的内容
var lst = listBox1.SelectedItems.Cast<DataRowView>();
foreach (var item in lst)
{
     MessageBox.Show(item.Row[0].ToString());// Or Row[1]...
}