c# - 如何在 WinForm 应用程序中检测 Ctrl - 正斜杠

标签 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);
    }

最佳答案

除法应该可以正常工作。

Ctrl + \:

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

Ctrl + /:

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

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


编辑:

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

关于c# - 如何在 WinForm 应用程序中检测 Ctrl - 正斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1380905/

相关文章:

c# - 在另一个中继器内动态绑定(bind)一个中继器?

c# - VSIX newtonsoft 不在包中 (VS>15.5) 抑制包

c# - 使用 C# 将文件(从流)保存到磁盘

c# - Windows Phone 推送 channel 过期

c# - MongoDb C# 驱动程序是否适用于 LINQ 和动态文档?

c# - 要用 CSS 标记的文本字段

C# 泛型 : Can I combine overloaded methods into one with different return/input data types?

c# - 定义 STA : "single thread affinity" or "single threaded apartment"; and how they relate

c# - 在 WinForms 中访问 ToolStripMenuItem 子项

C# Texbox 的 'MaxLength' 属性 - 故障 (Winform)