当用户键入文本框时,是否有办法减少或增加列表框中显示的项目数。现在我正在将项目加载到列表中。然后我将列表加载到列表框中。我知道如何使所选索引更改为用户输入的最佳匹配,但我喜欢更改项目数量的想法。
答案 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
。
编辑二:此解决方案区分大小写。