逗号或分号分隔的自动完成文本框

时间:2010-02-18 17:50:07

标签: c# .net winforms textbox autocomplete

我希望有TextBox支持自动完成功能,并允许用户输入以逗号或分号分隔的多个单词,为每个单词提供建议。我有一个标准的TextBox

textBox.AutoCompleteCustomSource.AddRange(new[] { "apple", "banana", "carrot" });
textBox.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
textBox.AutoCompleteSource = AutoCompleteSource.CustomSource;

不幸的是,它只会建议第一个字。之后输入的任何内容都会停止提示。

我希望能够执行以下方案:

  1. 输入“ap”
  2. 建议“苹果”
  3. 按逗号
  4. 用逗号
  5. 后面的光标填写“apple”
  6. 输入“ba”
  7. 建议“香蕉”
  8. 按逗号
  9. 让它附加“香蕉”,产生“苹果,香蕉”,
  10. 我尝试使用谷歌搜索解决方案,但没有太多运气。这似乎是网络应用程序的一个流行功能,但显然不适用于winforms。有什么建议吗?

4 个答案:

答案 0 :(得分:4)

答案 1 :(得分:2)

我认为只使用内置自动填充文本框属性就可以完成此任务。我要做的是制作一些自定义功能,检查文本框的OnTextChanged方法并决定做什么。当然,与您尝试的相比,这将涉及更多。你必须决定他们是否输入一些已知的字符串并以某种可选择的方式提供建议,如果他们点击它就附加所选的更改,当他们键入分隔符并附加当前选择的建议时捕获,并准备好自己准备好他们要添加更多文字并重新开始这个过程。

我希望其他人有一个更简单的方法,但如果没有,希望这能让你了解所需的逻辑。祝你好运!

答案 2 :(得分:0)

您可以通过收听KeyDown事件来实现自己的自动完成功能。

答案 3 :(得分:-1)