在我的Windows窗体应用程序中,我希望每次按下它时都有一个特殊按钮来运行测试.有几十个控件,所以在每个控件中实现它需要花费太多时间.
有没有办法可以设置热键,无论我在应用程序中做什么,我都可以按键,它会触发我的事件?
Zac*_*son 15
您可以ProcessCmdKey在控件或表单中覆盖和处理热键.
来自MSDN:
ProcessCmdKey方法首先确定控件是否具有ContextMenu,如果是,则启用ContextMenu来处理命令键.如果命令键不是菜单快捷方式且控件具有父级,则该键将传递给父级的ProcessCmdKey方法.实际效果是命令键在控制层次结构中"冒泡".除了用户按下的键之外,键数据还指示与键同时按下哪些修改键(如果有的话).修饰键包括SHIFT,CTRL和ALT键.
例如:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
// if it is a hotkey, return true; otherwise, return false
switch (keyData)
{
case Keys.Control | Keys.C:
// do something
return true;
default:
break;
}
return base.ProcessCmdKey(ref msg, keyData);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3911 次 |
| 最近记录: |