KeyDown 事件不起作用

KeyDown event doesnt work

如果按下 A 键,我会需要它(在 WinForm 上),触发事件。 我从 MSDN 站点获得了这段代码:

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
     if (e.KeyCode != Keys.A)
     {
          MessageBox.Show("Key 'a' was pressed.");
     }
}

问题是这段代码对我不起作用,没有错误消息,但是如果我在表单上按下 A 键,则没有事件触发。我尝试使用断点,但它从未进入 if.

这里有什么问题?

您需要将 Form.KeyPreview 属性 设置为 True。此 属性 获取或设置一个值,该值指示表单是否会在事件传递到具有焦点的控件之前接收键事件。

另请注意,您的代码中存在错误;根据您的消息,您需要验证 e.KeyCode == Keys.A.