2011-03-19 72 views
2

我試圖捕捉功能鍵F1〜F12 & 4個方向鍵&主頁,插入,刪除,End,Page Up & Down鍵。如何 ????C#Windows窗體:如何捕捉捕捉功能,箭頭和導航鍵

private void Form1_KeyPress(object sender, KeyPressEventArgs e) 
{ 
} 
+1

p.s.插入Home&Page Up Down鍵他們的分類的名稱是什麼 – Moon 2011-03-19 10:19:56

+0

[KeyEvents on Form只能與CTRL結合使用](http://stackoverflow.com/questions/4634315/keyevents-on-form-only-作品 - 在組合與 - CTRL) – 2011-03-19 10:29:20

回答

1

重寫表單的ProcessCmdKey()方法。在將鍵盤消息分派給具有焦點的控件之前,它將從消息循環中直接調用。這就是爲什麼重寫WndProc()不起作用的原因。

protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { 
     if (keyData == (Keys.Control | Keys.F)) { 
      MessageBox.Show("What the Ctrl+F?"); 
      return true; 
     } 
     return base.ProcessCmdKey(ref msg, keyData); 
    } 

從技術上講,你也可以覆蓋形式的方法的onkeydown用的KeyPreview =真實的,但這是一個醜陋的VB6不合時宜。