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

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

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

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

【问题讨论】:

    标签: 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;
            }
        }
    }
    

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

    【讨论】:

    • 我希望有一个“更简单”的解决方案,并等待其他人回答,但看来我必须以“硬”的方式去做:/感谢您提出的解决方案!跨度>
    • 好吧,我用自动完成来做文本框;这对我来说是“简单”的方式......但我认为它不太适合您的需求。
    猜你喜欢
    • 2017-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 2018-12-06
    • 2014-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多