以下是 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);
}
答案 0 :(得分:9)
分歧应该可以正常工作。
对于 Ctrl + \ :
if (keyData == (Keys.Control | Keys.OemPipe) )
对于 Ctrl + / :
if (keyData == (Keys.Control | Keys.OemQuestion) )
出于某种原因(不确定原因),当您捕获 Ctrl +这些键时,它们将映射到“已移位”的键映射。
编辑:
查找此密钥或任何其他密钥的一个技巧。在该方法的任何一行上设置断点,并在按下要尝试陷阱的键时查看keyData
值。我建议这样做而不要控制。然后,您可以使用反射器获取Keys
的所有特定值,并找到具有适当值的“键”。