【问题标题】:ListBox multiple Selection get all selected valuesListBox 多选获取所有选中的值
【发布时间】:2016-01-13 18:59:43
【问题描述】:

我有一段时间以来一直遇到问题,只是找不到任何适合我的解决方案。我有一个ListBox,里面装满了DataTable,就像

listbox.DataSource = table;  
listbox.Displaymember = "Name";    
listbox.ValueMember = "ID";

如果我现在在我的列表框中选择一个项目,我可以像这样把它拿出来:

listbox.SelectedValue.toString();

我的问题:

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

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

【问题讨论】:

    标签: c# winforms datatable listbox


    【解决方案1】:

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

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

    或者:

    foreach (var item in listbox.SelectedItems)
    {
        MessageBox.Show(item.ToString());
    }
    

    【讨论】:

    • 对于您的第一个选项,它告诉我 .Selected 'object' 不包含 'selected' 的定义 第二个选项它告诉我在 .GetSelectedIndices() 下类似的内容
    【解决方案2】:

    试试这个:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-17
      • 1970-01-01
      • 1970-01-01
      • 2012-03-04
      • 2015-02-19
      相关资源
      最近更新 更多