2011-04-14 40 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); 
    } 
}