【问题标题】:how to identify if multiple indexes are selected from the listbox control in c# winforms?c# winforms如何判断listbox控件是否选择了多个索引?
【发布时间】:2016-01-07 05:16:43
【问题描述】:

我正在开发一个应用程序,我需要放置字段 在前端,就像选中复选框一样。如果用户在复选框上选择了特定的字段,那么我将根据选择从 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() 中,我想确定 索引。

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

谢谢

【问题讨论】:

    标签: c# winforms crystal-reports listbox


    【解决方案1】:

    您可以通过三种方式找到
    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();
    

    【讨论】:

    • 感谢第一种方法帮助了我@Jerin
    • 当然没问题很高兴为您提供帮助。
    【解决方案2】:

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

    获取包含所有索引的从零开始的集合 ListBox 中当前选定的项目。

    【讨论】:

      猜你喜欢
      • 2021-09-09
      • 1970-01-01
      • 2012-01-05
      • 1970-01-01
      • 2012-06-25
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 2013-03-19
      相关资源
      最近更新 更多