通过代码选择多个Listbox项目

时间:2012-10-29 22:49:20

标签: c# listbox

您好我已经搜索了一段时间,似乎无法找到我的问题的解决方案,我尝试了多种方法通过代码在我的列表框中选择多个项目,但没有一个工作,我得到的最好的结果是我列表框中的1个选定项目。

基本上我想选择多个具有相同价值的项目。

下面是我的代码,对不起,如果我看起来是新手,但我是编程新手,还在学习基本的东西。

 foreach (string p in listBox1.Items)
 {
           if (p == searchstring) 
           {
                 index = listBox1.Items.IndexOf(p);
                 listBox1.SetSelected(index,true);

           }
 }

所以你可以看到我试图告诉程序循环遍历列表框中的所有项目,并且对于每个等于“searchstring”的项目,获取索引并将其设置为选中。

但是,所有这些代码都是选择列表中的第一个项目,它等于“searchstring”使其被选中并停止,它不会遍历所有“searchstring”项。

1 个答案:

答案 0 :(得分:8)

根据评论中的建议,您应该根据需要将SelectionMode设置为MulitSimpleMultiExpanded,但您还需要使用for或{{1循环而不是while,因为foreach循环不允许在迭代期间更改集合。因此,即使设置此属性也不会使您的代码运行,您将获得异常。试试这个:

foreach

您可以在使用设计器时在“属性”窗口中设置SelectionMode,或者使用此代码在for(int i = 0; i<listBox1.Items.Count;i++) { string p = listBox1.Items[i].ToString(); if (p == searchstring) { listBox1.SetSelected(i, true); } } 的构造函数中设置SelectionMode:

Form