如何识别在c#winforms中是否从listbox控件中选择了多个索引?

如何识别在c#winforms中是否从listbox控件中选择了多个索引?,c#,winforms,crystal-reports,listbox,C#,Winforms,Crystal Reports,Listbox,我正在开发一个应用程序,我有一个放置字段的要求 在前端就像拿复选框一样。如果用户在复选框中选择了特定字段,那么根据选择,我将从sql数据库生成crystal report 所以最多10个字段复选框就足够了。但是字段增加到30个,并且表单上的复选框计数也增加了 所以我决定用listbox。但在列表框中如何识别 是否从用户中选择了多个项目 在列表框中,我将SelectionMode属性设置为MultiSimple 但是,如果我选择两个或多个项目,listbox只获取第一个项目的索引 代码: if(l

我正在开发一个应用程序,我有一个放置字段的要求 在前端就像拿复选框一样。如果用户在复选框中选择了特定字段,那么根据选择,我将从sql数据库生成crystal report

所以最多10个字段复选框就足够了。但是字段增加到30个,并且表单上的复选框计数也增加了

所以我决定用listbox。但在列表框中如何识别 是否从用户中选择了多个项目

在列表框中,我将
SelectionMode
属性设置为
MultiSimple

但是,如果我选择两个或多个项目,listbox只获取第一个项目的索引

代码:

if(listbox1.SelectedIndex==0)
{

 //my code for first field.
}

if(listbox1.SelectedIndex==1)
{

 //my code for second field.
}
注意:我编写了一个基于用户的动态sql查询方法 选定的项目。因此,在我的方法
createSQLquery()
中,我想识别 索引

我想确定用户从前端选择了哪些项目,并以此为基础继续编写代码


谢谢

您可以通过三种方式找到
(一)

(二)

可以使用该属性获取多个选定项的索引

获取一个集合,该集合包含所有 列表框中当前选定的项目


感谢第一种方法帮助了我@Jersure,没问题,很高兴能帮上忙。
  foreach (object item in listbox.SelectedItems)
    {
        // do domething
    }
 for (int i = 0; i < ListBox1.Items.Count; i++)
  {
     if (ListBox1.Items[i].Selected)
       {
           // do domething
        }
   }
var selected = ListBox1.GetSelectedIndices().ToList();
var selectedValues = (from c in selected
                      select ListBox1.Items[c].Value).ToList();