在winform TextBox中自动完成[包含而不是以]开头

时间:2011-11-02 18:39:58

标签: c# winforms

// [in designer] textBoxInContext.AutoCompleteMode = Suggest
// [in designer] textBoxInContext.AutoCompleteSource = CustomSource
AutoCompleteStringCollection autoComplete = new AutoCompleteStringCollection();
autoComplete.AddRange(myArrayofStrings);
textBoxInContext.AutoCompleteCustomSource = autoComplete;

我有这个代码,它运行良好,如MSDN中所述。

问题:如果用户键入“PS”,则显示以“PS”开头的所有字符串;我想显示包含“PS”的所有字符串

任何指针?

3 个答案:

答案 0 :(得分:1)

如果您没有找到其他方法,我建议您手动执行此操作:

  1. 使用没有项目的组合框(稍后您将手动填写)。
  2. 有一个包含您可能建议的字符串数组。
  3. combobox.TextChangedKeyUp事件中,将其文本与您想要的字符串数组进行比较,并在清除combobox.Items后,将找到的结果添加到{{ 1}}并确保在找到建议时将combobox.Items属性设置为true。

答案 1 :(得分:0)

愚蠢但有趣的建议:创建一个继承自AutoCompleteStringCollection的类,并在调试中使用它来查看是否可以伪造它。

正常建议:使用列表框制作自己的自动填充功能。

答案 2 :(得分:-2)

我遇到了同样的问题,WPF Autocomplete Textbox Control是我在CodeProject中发现的,它运行得很好。它是用WPF编写的,但您可以对其进行修改以满足您的需求。