我正试图弄清楚,如何在WinForms
C#
桌面应用程序中处理用键盘上的箭头按钮触发的KeyDown
和KeyUp
事件,而不是使用button1
:
private void button1_Click(object sender, EventArgs e)
{
y = y - 10; // Go up
moveGraphicObject();
}
但如果我使用箭头键,无论是否在表单上使用其他控件,事件都不会触发:
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Left)
{
x = x - 10;
}
if (e.KeyCode == Keys.Right)
{
x = x + 10;
}
if (e.KeyCode == Keys.Up)
{
y = y - 10;
}
if (e.KeyCode == Keys.Down)
{
y = y + 10;
}
moveGraphicObject();
}
查看PreviewKeyDown事件。MSDN在这里有一个很好的例子
默认情况下,KeyDown不会为箭头键激发预览KeyDown为在此处预览密钥。不要在此处放置任何逻辑,而是使用将IsInputKey设置为true后的KeyDown事件。