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

Bud*_*Joe 6 .net c# keyboard-shortcuts winforms

下面是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);
    }
Run Code Online (Sandbox Code Playgroud)

Ree*_*sey 9

划分应该工作正常.

对于Ctrl+ \:

if (keyData == (Keys.Control | Keys.OemPipe) )
Run Code Online (Sandbox Code Playgroud)

对于Ctrl+ /:

if (keyData == (Keys.Control | Keys.OemQuestion) )
Run Code Online (Sandbox Code Playgroud)

由于某种原因(不确定原因),当你捕获Ctrl+这些键时,它们会映射到"移位"键映射.


编辑:

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