2011-04-14 43 views
0

我想重载组合框,以便通过键盘上的按键在列表中选择它。覆盖组合框来选择项目,通过在C#键盘上按索引来选择项目

实施例:

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

'J'按下被选择,并且'F' 为 '二月',....

我想这样使用它,当

按下然后
二月

这可能吗?如果是的话,我该怎么做到呢?

+0

ComboBox上没有KeyDown/KeyUp事件吗? – jv42 2011-04-14 11:52:14

回答

0

这只有在组合设置为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); 
    } 
}