C# 从C windows窗体中的列表框中获取多个值

C# 从C windows窗体中的列表框中获取多个值,c#,sql,winforms,C#,Sql,Winforms,我有一个列表框,它从sql表中提取数据。我将其选择模式设置为multisimple 我将每个项目的显示成员设置为sql表中的名称字段,将每个项目的值成员设置为sql表中的ID字段 当我从列表中选择多个项目时,如何获取多个值?我可以使用listboxname.text获取一个项目的文本,但我不知道如何一次获取所有已选择的值 任何帮助都将不胜感激。使用SelectedItems属性,以下内容将获得代表所选项目的列表: var items = listBox1.SelectedItems.Cast&l

我有一个列表框,它从sql表中提取数据。我将其选择模式设置为multisimple

我将每个项目的显示成员设置为sql表中的名称字段,将每个项目的值成员设置为sql表中的ID字段

当我从列表中选择多个项目时,如何获取多个值?我可以使用listboxname.text获取一个项目的文本,但我不知道如何一次获取所有已选择的值

任何帮助都将不胜感激。

使用SelectedItems属性,以下内容将获得代表所选项目的列表:

var items = listBox1.SelectedItems.Cast<object>()
                    .Select(x=>Convert.ToString(x)).ToList();
如果基础项类型只是一个具有2个属性Name和ID的普通类,例如call it item,则代码更简单,如下所示:

var ids = listBox1.SelectedItems.Cast<Item>()
                  .Select(item=>item.ID).ToList();
方法1:可以使用ListBox的SelectedDices属性获取所有选定项的索引值。 然后,对于每个选定的索引,您可以获得该项的值

试试这个:

      private void button1_Click(object sender, EventArgs e)
        {
            List<String> SelectedItems=new List<String>();
            foreach (int i in listBox1.SelectedIndices)
            {
               SelectedItems.Add(listBox1.Items[i].ToString());
            }               
        }
      private void button1_Click(object sender, EventArgs e)
        {
            List<String> SelectedItems=new List<String>();
            foreach (String s in listBox1.SelectedItems)
            {
               SelectedItems.Add(s);
            }               
        }

注意:列表SelectedItems包含列表框中的所有SelectedItems

,并链接到SelectedItems的MSDN帮助
      private void button1_Click(object sender, EventArgs e)
        {
            List<String> SelectedItems=new List<String>();
            foreach (String s in listBox1.SelectedItems)
            {
               SelectedItems.Add(s);
            }               
        }