首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ComboBox - AutoComplete +免费打字

ComboBox - AutoComplete +免费打字
EN

Stack Overflow用户
提问于 2015-06-25 18:47:10
回答 2查看 730关注 0票数 1

如果用户正在输入的内容在项目列表中,如果它不存在,我希望我的组合框启用自动完成功能,我希望将它包括在我的列表中。

例如:

有这些项目的ComboBox:“摇滚,乡村,爵士”。如果用户开始输入“Ro.”组合框自动完成为“摇滚”。但是如果用户输入"Blues",我想将它添加到我的项目中。所以就像:“摇滚,乡村,爵士,蓝军”。

我怎么能这么做?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-25 18:58:39

您可以使用AutoCompleteModeAutoCompleteSource进行自动完成。

代码语言:javascript
复制
comboBox1.AutoCompleteMode = AutoCompleteMode.Append;
comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems;

或者您可以在选择ComboBox之后通过Visual中的“属性面板”执行此操作。

用于向ComboBox中添加新项;

代码语言:javascript
复制
  private void comboBox1_TextChanged(object sender, EventArgs e)
    {
        if (!comboBox1.Items.Contains(comboBox1.Text))
        {
            comboBox1.Items.Add(comboBox1.Text);
            comboBox1.Items.RemoveAt(comboBox1.Items.Count - 2);
        }
    }
票数 3
EN

Stack Overflow用户

发布于 2015-06-25 21:54:30

如果我使用MVVM进行此操作,我将从一个ComboBox开始,并对其进行适当的修改。

如果您在ComboBox中使用内置的DevExpress,您几乎可以免费获得它。只需用您想要自动完成的项填充下拉列表,然后设置以下选项:

  • 自动下拉列表(因此,当您开始键入时,它将自动删除一个匹配列表)。
  • 按匹配筛选列表(即下拉列表中的唯一项将与您键入的内容匹配)。
  • 部分匹配(即您输入的内容将过滤下拉列表,匹配在任何地方,甚至在中间)。

如果您想变得更时尚,您可以编写一个服务来侦听用户当前在框中键入的内容,然后调整下拉项目列表以适应。下拉列表中与用户类型匹配的任何项都将自动显示。我将使用反应性扩展(RX)和Throttle来实现这一点,请参见:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31058402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档