在VB.NET项目中(在VS2013中工作)我需要在用户按下CTRL + LEFT SHIFT + M时执行某些操作。
我最接近的是能够检测到其中一个修改键和M键。
有this question here in SO,但提供示例代码的唯一答案是检测字符键和一个或其他修饰键,而不是两者。
我一直在寻找一段时间,我见过的唯一例子只显示了一个修改键,我无法弄清楚如何检测两个修改键和一个字符键。
以下是我目前的代码:
If My.Computer.Keyboard.CtrlKeyDown AndAlso My.Computer.Keyboard.ShiftKeyDown AndAlso (e.KeyCode And Not Keys.Modifiers) = Keys.M Then
HideForm()
End If
看起来在KeyDown事件中只检测到其中一个键,我想这是有意义的,因为事件将为每个键单独触发。
那么如何检测何时按下所有三个键?
答案 0 :(得分:2)
尝试在您使用的表单上使用ProcessCmdKey覆盖:
Protected Overrides Function ProcessCmdKey(ByRef msg As Message, keyData As Keys) As Boolean
If keyData = (Keys.Control Or Keys.Shift Or Keys.M) Then
' do something
Return True
End If
Return MyBase.ProcessCmdKey(msg, keyData)
End Function