在winform TextBox中自动完成开头
// [in designer] textBoxInContext.AutoCompleteMode = Suggest // [in designer] textBoxInContext.AutoCompleteSource = CustomSource AutoCompleteStringCollection autoComplete = new AutoCompleteStringCollection(); autoComplete.AddRange(myArrayofStrings); textBoxInContext.AutoCompleteCustomSource = autoComplete;
我有这个代码,如MSDN中记录的那样运行良好。
问题:如果用户键入“PS”,则显示以“PS”开头的所有字符串; 我想显示包含“PS”的所有字符串
有什么指针吗?
如果您没有找到其他方法,我建议您手动执行:
- 使用没有物品的combobox(稍后您将手动填充)。
- 有一个字符串数组与您可能的建议。
- 在
combobox.TextChanged
或KeyUp
事件中获取其文本并将其与您想要的字符串数组进行比较,并在清除combobox.Items
,将找到的结果添加到combobox.Items
并确保将DroppedDown
属性设置为true如果你找到了建议。
这个愚蠢而又有趣的建议:创建一个inheritance自AutoCompleteStringCollection的类,并在调试中使用它来查看是否可以伪造它。
正常建议:使用列表框制作您自己的自动填充function。
我遇到了同样的问题,我在CodeProject中找到了WPF自动完成文本框控件 ,它运行得很好。 它是用WPF编写的,但您可以对其进行修改以满足您的需求。