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

5
我在我的窗体上有一个组合框控件(WinForms,.NET 3.5),它的DropDownStyle属性被设置为Simple。假设它被填充了字母表中的字母,作为字符串对象(“a”,“b”,“c”等)。
当我在组合框的输入字段中键入一个字母时,正确的项目将显示在其下方。
这是我想要的行为。但我也想选择第一个匹配的项目。
组合框控件是否有一个属性可以实现这一点?还是我需要通过编程来处理它?
1个回答

2

根据您的需求,您可以考虑使用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;
        }
    }
}

可能可以实现你想要的选择(在选择方面),但它也会立即更改用户的文本。


我本来希望有一个“更简单”的解决方案,并等待其他人的答案,但看起来我必须用“更困难”的方式来解决它 :/ 感谢您提出的解决方案! - Fueled
我会用自动完成来创建文本框;这对我来说是“简单”的方法...但我不认为它完全符合你的需求。 - Daniel LeCheminant

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接