Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C在列表框搜索中选择多个结果?_C#_Search_Listbox - Fatal编程技术网

C# C在列表框搜索中选择多个结果?

C# C在列表框搜索中选择多个结果?,c#,search,listbox,C#,Search,Listbox,我想在列表框中搜索我创建的对象值。这是覆盖字符串。这是将项目添加到列表框中的方式 public override string ToString() { string reservatiestring; reservatiestring ="Kamer: " + roomNumber + " Op datum: " + datum + " Aantal personen: " + personen.Count + " Naam: " + reser

我想在列表框中搜索我创建的对象值。这是覆盖字符串。这是将项目添加到列表框中的方式

 public override string ToString()
    {
        string reservatiestring;
        reservatiestring ="Kamer: " + roomNumber + "  Op datum: " + datum + "  Aantal personen: " + personen.Count + "  Naam: " + reservatienaam;
        return reservatiestring;
    }
我现在想在我的列表框中搜索结果,同时搜索特定的房间号。所有房间号码都保存在一个组合框中。这就是我目前拥有的:

private void buttonSearch_Click(object sender, EventArgs e)
    {
        foreach (var item in listBox1.Items)
        {
        for (int i = listBox1.Items.Count - 1; i >= 0; i--)
        {
            if (listBox1.Items[i].ToString().ToLower().Contains(comboBox1.SelectedText.ToLower()))
            {
                listBox1.SetSelected(i, true);
            }
            else
            {
                MessageBox.Show("error");
            }
        }
但这只会选择一个结果,并且它不会仅指定给roomNumber对象。当我放入foreach以使其选择多个项目时,我的程序失败,并出现以下错误:

已修改此枚举数绑定到的列表。仅当列表未更改时,才能使用枚举数

额外的信息要求! 这是我将信息添加到列表框的位置:

私有无效BTN保留\u单击对象发送者,事件参数e { 预订预订=新预订


错误:

我不明白为什么在您的情况下需要foreach进行多重选择,特别是您没有在代码中的任何地方使用var项

但是,如果SetSelected实现正在对项进行内部更改,则可能会发生异常

确保已将列表配置为“多选”

//将选择模式设置为“多个”和“扩展”。 listBox1.SelectionMode=SelectionMode.MultiExtended

移除foreach。如果仍然需要另一个循环,请将foreach替换为for

选中下面的文档链接,其中包含v。多选列表框的良好示例:

您可以共享更多的代码或提供更完整的异常消息吗?从您提供的代码中,comboBox或listBox都没有删除或添加项,这似乎是更改所选属性的消息状态通常不会给出这种类型的错误。您不能在iteratio中修改绑定到foreach的项n所以这就是问题的原因,但是如果您已经将selectionMode标记为多线程,那么您的解决方案应该可以使用for循环,以澄清更多的代码,谢谢您的快速回复!谢谢您的建议,我设置了选择模式。但是仍然会出现错误。我会在错误消息中添加一个屏幕截图。我应该做什么是否放入for循环?您必须将foreach循环全部移除,或将其替换为常规for循环。
        reservatie.roomNumber = Convert.ToInt32(numericUpDownroom.Value);
        reservatie.datum = dateTimePicker1.Value;
        reservatie.reservatienaam = textBoxName1.Text;



        for (int i = 0; i <= personcount; i++)
        {
            Person persoon = new Person();
            persoon.naam = textBoxName1.Text;
            persoon.leeftijd = Convert.ToInt32(numericUpDownAge1.Value);
            reservatie.personen.Add(persoon);

        }
        if (!comboBox1.Items.Contains(reservatie.roomNumber))
        {
            comboBox1.Items.Add(reservatie.roomNumber);
        }
        else
            reservaties.Add(reservatie);
        listBox1.FormattingEnabled = false;
        listBox1.Items.Add(reservatie.ToString());