将键盘快捷键添加到WinForm应用程序

时间:2015-10-10 13:18:58

标签: c# winforms .net-4.0 keyboard-shortcuts

我想创建一个像这样的kbrd快捷方式: Ctrl + D 1 。这个序列在visual studio中很常见。我想将它添加到我的应用程序中。

要使用它,请按住 Ctrl ,然后按 D 。接下来,释放 Ctrl D 。最后,按 1 。这应该执行所需的功能。

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相比。