在用户输入时减少列表框中的项目数

时间:2014-05-19 15:44:11

标签: c# winforms listbox

当用户键入文本框时,是否有办法减少或增加列表框中显示的项目数。现在我正在将项目加载到列表中。然后我将列表加载到列表框中。我知道如何使所选索引更改为用户输入的最佳匹配,但我喜欢更改项目数量的想法。

1 个答案:

答案 0 :(得分:1)

您实际上是要创建一个临时列表,并使用充满所有可能解决方案的列表。调用文本框的TextChange()事件,然后比较用户输入的内容。将正确的匹配存储到临时列表中,然后相应地调整列表框。

示例代码,

    private void textboxInput_TextChanged(object sender, EventArgs e)
    {
        List<String> temp = new List<string>();
        for (int i = 0; i < fullList.Count - 1; i++ )
        {
            if (fullList[i].Contains(textboxInput.Text))
                temp.Add(ls[i]);
        }

        listboxOutput.DataSource = temp;
    }

这假设你的名单并不大。如果您的列表很大并且必须在每次按键时都进行迭代,这可能会导致一些延迟。

编辑一个:在for循环中将fullList.Capacity - 1更改为fullList.Count - 1

编辑二:此解决方案区分大小写。

相关问题