首页 文章

如何识别是否从c#winforms中的列表框控件中选择了多个索引?

提问于
浏览
0

我正在开发一个应用程序,我需要将字段放在前端,就像取复选框一样 . 如果用户在复选框上选择了特定字段,那么根据选择我将从sql数据库生成水晶报告 .

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

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

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

但是,如果我选择两个或更多项,则列表框仅采用第一个项的索引 .

代码:

if(listbox1.SelectedIndex==0)
{

 //my code for first field.
}

if(listbox1.SelectedIndex==1)
{

 //my code for second field.
}

注意:我写了一个方法,用于根据用户选择的项获取动态sql查询 . 所以在我的方法 createSQLquery() 中,我想识别索引 .

我想确定用户从前端选择了哪些项目,并根据我将继续编写我的代码 .

谢谢

2 回答

  • 0

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

    foreach (object item in listbox.SelectedItems)
        {
            // do domething
        }
    

    2)

    for (int i = 0; i < ListBox1.Items.Count; i++)
      {
         if (ListBox1.Items[i].Selected)
           {
               // do domething
            }
       }
    

    3)

    var selected = ListBox1.GetSelectedIndices().ToList();
    var selectedValues = (from c in selected
                          select ListBox1.Items[c].Value).ToList();
    
  • 0

    您可以使用ListBox.SelectedIndices属性来获取多个所选项的索引 .

    获取一个集合,其中包含ListBox中所有当前所选项目的从零开始的索引 .

相关问题