如何更改ComboBox键盘输入行为

时间:2011-08-25 15:02:01

标签: winforms combobox keyboard

(Visual Studio 2010中的WinForms项目,.NET 4,C#)

我有一个DropDownList风格的ComboBox,带有一组固定的项目,这些项目是从1到40的整数,i。例如,ComboBox用于输入1到40之间的数字。

现在,当用户使用键盘输入新值(例如“1”),并且控件的当前值为“2”时,ComboBox首先跳转到“10”,而我希望它跳转到“ 1“并且仅在第二个按键跳转到以”1“开头的第二个条目,这将是”10“。

有没有一种简单的方法可以改变这种行为?

2 个答案:

答案 0 :(得分:1)

我不认为有一种简单的方式"。您需要构建一个自定义ComboBox类并覆盖the Control.ProcessKeyEventArgs Method

答案 1 :(得分:0)

ComboBox执行增量搜索,从当前所选项开始。键入1 0将引导您进入以“10”开头的条目,无论选择哪一个。

如何用前导零填充所有条目,那么用户会为第一个条目键入“01”?

这也将确保条目正确排序(如果您对列表项进行排序,并且它们是否应包含数字字符后面的文本,可能迟早会出现这种情况;)。