下面是 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/