在c#中重写组合框,通过键盘按下索引来选择项目

本文关键字:键盘 索引 项目 选择 重写 组合 | 更新日期: 2023-09-27 17:50:04

我想重写一个组合框,这样就可以通过键盘按下键来选择它在列表中的位置。

例子:

ComboBoxMonths
  - Jan
  - Feb
  - Mar
  - Apr
  - May
  - Jun
  . . .

, "J" 1月被选中时,和 F , 2月的,…

我想这样使用,当

1

然后按 1月,
2 for Feb

有可能吗?

在c#中重写组合框,通过键盘按下索引来选择项目

这只有在组合设置为DropDownList时才能正常工作,这在您的示例中是有意义的。它也只覆盖1-9。如果你想处理一个以上的数字,它需要更多的定时器逻辑。

public class MyComboBox : ComboBox
{
    protected override void OnKeyPress(KeyPressEventArgs e)
    {
        var index = e.KeyChar - '1';
        if( index >= 0 && index < this.Items.Count )
            this.SelectedIndex = index;
        base.OnKeyPress(e);
    }
}