您好我已经搜索了一段时间,似乎无法找到我的问题的解决方案,我尝试了多种方法通过代码在我的列表框中选择多个项目,但没有一个工作,我得到的最好的结果是我列表框中的1个选定项目。
基本上我想选择多个具有相同价值的项目。
下面是我的代码,对不起,如果我看起来是新手,但我是编程新手,还在学习基本的东西。
foreach (string p in listBox1.Items)
{
if (p == searchstring)
{
index = listBox1.Items.IndexOf(p);
listBox1.SetSelected(index,true);
}
}
所以你可以看到我试图告诉程序循环遍历列表框中的所有项目,并且对于每个等于“searchstring”的项目,获取索引并将其设置为选中。
但是,所有这些代码都是选择列表中的第一个项目,它等于“searchstring”使其被选中并停止,它不会遍历所有“searchstring”项。
答案 0 :(得分:8)
根据评论中的建议,您应该根据需要将SelectionMode
设置为MulitSimple
或MultiExpanded
,但您还需要使用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