日期:2014-05-18 浏览次数:21370 次
        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