c# - ComboBox - 自动完成 + 自由打字

标签 c# wpf combobox autocomplete

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

例如:

包含以下项目的组合框:“摇滚、乡村、爵士”。 如果用户开始输入“Ro...”,组合框会自动完成“Rock”。但是如果用户输入“Blues”,我想将它添加到我的项目中。所以它就像:“摇滚、乡村、爵士、蓝调”。

我该怎么做?

最佳答案

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

comboBox1.AutoCompleteMode = AutoCompleteMode.Append;
comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems;

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

用于向您的 ComboBox 添加新项目;

  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);
        }
    }

关于c# - ComboBox - 自动完成 + 自由打字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31058402/

相关文章:

c# - 无法将选择的值分配给组合框

c# - 为什么 ComboBox 在设置 DataSource 时不抛出异常?

c# - 在运行时修改 Databound ComboBox

c# - IDisposable.Dispose() 实现应该是幂等的吗?

c# - 用于检索基础类型的空类

c# - I扩展 : extensible object pattern : How does it work?

wpf - 选择行时突出显示 DataGrid 中的 RowDetails

c# - ListBox 使用 caliburn.micro 自动调整大小不正确

java - 正则表达式仅匹配字符串中的 6 个字母的字母数字单词

c# - 显示 DataTable 的值