2009-11-10 65 views
14

我有一個C#窗體,有5個按鈕。用戶輸入信息並根據功能鍵的按下,執行特定的操作。 F9 - 執行命令,F6 - 保存,F3查看。處理功能鍵按

我已經添加了foolowing代碼:

OnForm_Load

this.KeyUp += new System.Windows.Forms.KeyEventHandler(KeyEvent); 

private void KeyEvent(object sender, KeyEventArgs e) //Keyup Event 
    { 
     if (e.KeyCode == Keys.F9) 
     { 
      MessageBox.Show("Function F9"); 
     } 
     if (e.KeyCode == Keys.F6) 
     { 
      MessageBox.Show("Function F6"); 
     } 
     else 
      MessageBox.Show("No Function"); 

    } 

但沒有任何反應

感謝

回答

32

您將n eed to set

KeyPreview=True 

爲您的表單。否則,按鍵被具有焦點的控制器吞下。

+0

同樣在上一個Visual Studio C#標準中,您需要將方法設置爲PreviewKeyDown而不是KeyPress以獲取功能鍵的工作方式。 – Ch3shire 2017-08-31 12:28:21