WinForm窗体全局快捷键/组合键的设置方法

2013-08-12 (2014-08-27更新)

全局快捷键

在窗体运行后,焦点将会在控件上,窗体将捕捉不到快捷的,winform的键盘事件将不会被执行。 将winform的KeyPreview设置为True,快捷键将会先被传递到窗体,实现全局快捷键。

屏蔽快捷键后续事件

if (e.KeyCode == Keys.F1)
{
    //如果还有keypress事件,不让此快捷键触发其事件可加一句代码
    e.Handled = true; //将Handled设置为true,指示已经处理过KeyPress事件
    事件函数();       //执行按下快捷键的动作
}

组合快捷键(keypress事件)

1)方法一

if (e.Modifiers == Keys.Alt && e.KeyCode == Keys.D0)
{ 
MessageBox.Show("按下了Alt + 0"); 
}

2)方法二

if (e.Control  && e.Alt && e.KeyCode == Keys.D1)
{
MessageBox.Show("按下了Control+Alt +1"); 
}

3)方法三

if ((int)e.Modifiers == ((int)Keys.Control + (int)Keys.Alt) && e.KeyCode == Keys.D0) 
{
MessageBox.Show("按下了Control + Alt + 0"); 
}
Fork me on GitHub