2013-03-18 48 views
0

我正在嘗試製作一組​​與數字鍵對應的九個複選框,例如,點擊數字鍵盤上的「7」鍵會使左上角的複選框檢查或相應地取消選中。在C中編程複選框的熱鍵#

我無法確定的是如何使KeyDown被表示,以便可以選擇項目,而不管當前關注的頁面是什麼,以及如何將KeyDown指向相應的複選框以使其生效從被選中或未選中切換。謝謝您的意見。

+1

Winforms/WPF? – Andrey 2013-03-18 01:04:39

+0

我正在使用Windows窗體設置。 – Tim 2013-03-18 01:08:48

+1

form.keypreview = true; form.onkeydown – 2013-03-18 01:18:49

回答

0

在您的表單中,將KeyPreview屬性設置爲True

爲窗體創建一個KeyDown事件處理程序。

KeyDown處理程序應該有類似下面的代碼:

private void Form1_KeyDown(object sender, KeyEventArgs e) 
{ 
    switch (e.KeyCode) 
    { 
     case Keys.NumPad1: 
      Toggle(checkBox1); break; 
     case Keys.NumPad2: 
      Toggle(checkBox2); break; 
     case Keys.NumPad3: 
      Toggle(checkBox3); break; 
     ... 
     default: 
      break; 
    } 
} 

private void Toggle(CheckBox checkbox) 
{ 
    checkbox.Checked = !checkbox.Checked; 
} 

如果你不喜歡的switch語句,另一種選擇是建立一個字典映射的鑰匙複選框。然後在你的keydown中,你可以檢查密鑰是否在字典中,如果是這樣,獲取複選框並切換它。