捕获Windows窗体应用程序中的组合键事件

Gra*_*ton 12 c# winforms

当用户按下Shift+ UP键时,我希望我的表单通过调用消息框来响应.

如何在Windows窗体中执行此操作?

Chr*_*isF 18

处理KeyDown事件并具有以下内容:

if (e.Modifiers == Keys.Shift && e.KeyCode == Keys.Up)
{
    MessageBox.Show("My message");
}
Run Code Online (Sandbox Code Playgroud)

事件处理程序必须位于主窗体上,您需要将KeyPreview属性设置为true.这可以在属性对话框中以设计模式完成.

  • 不要认为它有效。我尝试了很多次,但 MessageBox 始终没有出现 (2认同)
  • 事件正在触发,但条件始终为假。 (2认同)

Mai*_*gma 6

如果您想使用多个修饰符,KeyEventArgs也可以使用布尔值来指示是否按下了 CTRL、ALT 或 SHIFT。

例子:

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Control && e.Alt && e.Shift && e.KeyCode == Keys.F12)
        MessageBox.Show("My message");
}
Run Code Online (Sandbox Code Playgroud)

在此示例中,如果同时按下 CTRL、ALT、SHIFT 和 F12,则会显示消息框。