2010-02-18 82 views
3

我想要一个支持自动完成的TextBox,并允许用户输入用逗号或分号分隔的多个单词,为每个单词提供建议。我有一个标准TextBox逗号或分号分隔的自动完成文本框

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

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

我希望能够执行以下情形:

  1. 类型“AP”
  2. 有它暗示“苹果”
  3. 按下逗号
  4. 有它填补了“苹果, “用逗号后光标
  5. 类型‘把’
  6. 有它建议‘香蕉’
  7. 按下逗号
  8. 有其附加的“香蕉”,导致“苹果,香蕉,”

我试过谷歌搜索的解决方案,但还没有多少运气。这似乎是网络应用的流行功能,但显然不适用于winforms。有什么建议么?

回答

0

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

2

我不相信只需构建自动完成文本框属性即可完成此任务。我要做的是制作一些自定义功能,检查文本框的OnTextChanged方法并决定要做什么。当然,与你正在尝试做的事情相比,这将会更加复杂。您必须决定是否键入一些已知字符串,并以某种可选方式提供建议,如果单击它,则追加选定的更改,当键入分隔符时追加并附加当前选定的建议,并准备好自己他们添加更多文本并再次启动该过程。

我希望别人有一个更简单的方法,但如果不是,希望这给你一个所需逻辑的想法。祝你好运!