C#下如何设置双快捷键?
例如,用户按下“Ctrl+J”,就相当于按下Button1.
C#如何实现?
[解决办法]
在KeyPress事件中判断,如果Ctrl和J键的状态都是Pressed,就调用Button1的Click事件
[解决办法]
如果是菜单项 可以直接指定
[解决办法]
LZ是想在窗体中无论焦点在哪个控件上都会响应这个热键吗?那就重写Form的 bool ProcessDialogKey(Keys) 方法
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