C# Combobox (Dropdownstyle = Simple) -- 如何在键入时选择项目

Posted

技术标签:

【中文标题】C# Combobox (Dropdownstyle = Simple) -- 如何在键入时选择项目【英文标题】:C# Combobox (Dropdownstyle = Simple) -- how to select item as you type 【发布时间】:2009-02-10 19:59:05 【问题描述】:

我的表单上有一个 Combobox 控件(WinForms,.NET 3.5),它的 DropDownStyle 属性设置为 Simple。假设它填充了字母表中的字母,作为 string 对象(“a”、“b”、“c”等)。 当我在组合框的输入字段中键入一个字母时,正确的项目将显示在下方。

这是我想要的行为。但我也想选择第一个匹配项。

是否有 Combobox 控件的属性可以实现这一点?还是我需要以编程方式处理?

【问题讨论】:

【参考方案1】:

根据您的需要,您可以考虑使用 TextBox 控件并设置 AutoComplete 属性(例如 AutoCompleteMode 和 AutoCompleteCustomSource)

您将面临的困难是,一旦您(以编程方式)选择了一个项目,组合框中的文本就会发生变化。所以做这样的事情:

private void comboBox1_TextChanged(object sender, EventArgs e)

    for(int i=0; i<comboBox1.Items.Count; i++)
    
        if (comboBox1.Items[i].ToString().StartsWith(comboBox1.Text))
        
            comboBox1.SelectedIndex = i;
            return;
        
    

可能会完成您想要的(就选择而言),但它也会立即更改用户的文本。

【讨论】:

我希望有一个“更简单”的解决方案,并等待其他人回答,但看来我必须以“硬”的方式去做:/感谢您提出的解决方案!跨度> 好吧,我用自动完成来做文本框;这对我来说是“简单”的方式......但我认为它不太适合您的需求。

以上是关于C# Combobox (Dropdownstyle = Simple) -- 如何在键入时选择项目的主要内容,如果未能解决你的问题,请参考以下文章

C#中关于combobox控件问题

C# winform 下拉列表控件(comboBox)

将 ComboBox 与 List<string> 同步 [C#]

C# WinForm Combobox 赋值

C#中ComboBox动态绑定赋值

C# 重写ComboBox实现下拉任意组件