我想创建一个像这样的kbrd快捷方式: Ctrl + D , 1 。这个序列在visual studio中很常见。我想将它添加到我的应用程序中。
要使用它,请按住 Ctrl ,然后按 D 。接下来,释放 Ctrl 和 D 。最后,按 1 。这应该执行所需的功能。
答案 0 :(得分: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.你处于" Ctrl + D状态"的某种反馈。在状态条上是明智的,与VS相比。