【问题标题】:Comma or semicolon-delimited AutoComplete TextBox逗号或分号分隔的自动完成文本框
【发布时间】:2011-01-18 10:50:19
【问题描述】:

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

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

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

我希望能够执行以下场景:

  1. 键入“ap”
  2. 建议“苹果”
  3. 按逗号
  4. 用逗号后面的光标填写“apple”
  5. 键入“ba”
  6. 是否建议“香蕉”
  7. 按逗号
  8. 让它附加“香蕉”,从而产生“苹果,香蕉”

我已经尝试在谷歌上搜索解决方案,但运气不佳。这似乎是 web 应用程序的一个流行功能,但显然不是 winforms。有什么建议吗?

【问题讨论】:

    标签: c# .net winforms textbox autocomplete


    【解决方案1】:

    【讨论】:

    • 不错!这看起来很有希望。我现在不得不推迟玩这个,但当我有机会时,我一定会试一试。代码似乎很有意义。谢谢!
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-27
        • 1970-01-01
        • 2020-04-04
        • 1970-01-01
        • 2019-08-19
        相关资源
        最近更新 更多