日期:2014-05-18 浏览次数:21181 次
protected override bool ProcessDialogKey(Keys keyData) { if (keyData == (Keys.Control | Keys.J)) { Button1.PerformClick(); return true; } return base.ProcessDialogKey(keyData); }
------解决方案--------------------
protected override void OnKeyDown(KeyEventArgs e)
{
if (e.Control && e.KeyCode == System.Windows.Forms.Keys.J)
{
this.button1.click(sender e);
}
base.OnKeyDown(e);
}
------解决方案--------------------
窗体的KeyDown事件:
private void Game_KeyDown(object sender, KeyEventArgs e)
{
// F1快捷控制开始
if (e.KeyCode == Keys.F1)
{
button1.PerformClick();
}
}
------解决方案--------------------
学习中
------解决方案--------------------
keyDown在这里应该不行的,感觉应该重写ProcessDialogKey方法
protected override bool ProcessDialogKey(Keys keyData)
{
if (keyData == Keys.Control | Keys.J)
{
...处理
return true;
}
return base.ProcessDialogKey(keyData);
}
------解决方案--------------------
噢,少了个括号:
if (keyData == (Keys.Control | Keys.J))
------解决方案--------------------
如果想要在windows的任何地方使用热键都有效,最好是使用api函数 RegisterHotKey() 具体方法在网上查查吧
------解决方案--------------------
mark
------解决方案--------------------
热键参考
http://blog.csdn.net/jinjazz/archive/2007/11/15/1886055.aspx