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

本文关键字:WinForm 应用程序 快捷键 键盘 添加 | 更新日期: 2023-09-27 18:17:07

我想创建一个这样的kbrd快捷键:Ctrl + D1。这个序列在visual studio中很常见。我想把它添加到我的应用程序中。

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

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

这是一个和弦,而不仅仅是一个键击。因此,必须首先检测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状态"的某种反馈是明智的。