2009-11-10 112 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