如何在WinForm应用程序中检测Ctrl - Forward Slash

时间:2009-09-04 18:45:47

标签: c# .net winforms keyboard-shortcuts

以下是 Ctrl + F 的代码(来自另一个SO帖子)。但是如何检测 Ctrl + ForwardSlash ?或 Ctrl + / (注意:除法不起作用)

    protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    {
        if (1 == 1) //keyData == (Keys.Control | Keys.F))
        {
            MessageBox.Show("What the Ctrl+F?");
            return true;
        }
        return base.ProcessCmdKey(ref msg, keyData);
    }

1 个答案:

答案 0 :(得分:9)

分歧应该可以正常工作。

对于 Ctrl + \

if (keyData == (Keys.Control | Keys.OemPipe) )

对于 Ctrl + /

if (keyData == (Keys.Control | Keys.OemQuestion) )

出于某种原因(不确定原因),当您捕获 Ctrl +这些键时,它们将映射到“已移位”的键映射。


编辑:

查找此密钥或任何其他密钥的一个技巧。在该方法的任何一行上设置断点,并在按下要尝试陷阱的键时查看keyData值。我建议这样做而不要控制。然后,您可以使用反射器获取Keys的所有特定值,并找到具有适当值的“键”。