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

时间:2010-06-17 14:33:00

标签: c# winforms

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

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

3 个答案:

答案 0 :(得分:18)

处理KeyDown事件并执行以下操作:

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

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

答案 1 :(得分:4)

如果你想使用多个修饰符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");
}

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

答案 2 :(得分:0)

要处理多个修饰键(在KeyDown事件中)

 if (e.Control && e.Shift)
            {
                if (e.KeyCode == Keys.F1)
                {
                    // Your code goes here

                }
            }