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
.
如果按下 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
.