添加键盘快捷键到WinForm应用程序
本文关键字:WinForm 应用程序 快捷键 键盘 添加 | 更新日期: 2023-09-27 18:17:07
我想创建一个这样的kbrd快捷键:Ctrl + D, 1。这个序列在visual studio中很常见。我想把它添加到我的应用程序中。
使用它,按住Ctrl,然后按D。然后,释放Ctrl和D。最后,按1。这应该执行所需的功能。
这是一个和弦,而不仅仅是一个键击。因此,必须首先检测Ctrl+D击键,然后是1。使用一个变量来记住您看到了Ctrl+D,如下所示:
private bool ctrld;
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
if (!ctrld && keyData == (Keys.Control | Keys.D)) {
ctrld = true;
return true;
}
if (ctrld) {
switch (keyData & Keys.KeyCode) {
case Keys.D1: DoStuff(); break;
// others...
}
return true;
}
ctrld = false;
return base.ProcessCmdKey(ref msg, keyData);
}
注意写入(keyData &Keys.KeyCode),无论修饰符的状态如何,它都会识别1。Ctrl+1也可以。通常情况下,去掉&如果你只想识别1。与VS相比,在状态栏上显示你处于"Ctrl+D状态"的某种反馈是明智的。