键盘快捷键-如何使用三个不同的键,例如(Ctrl Shift O)在vb.net中打开一个窗体



我需要使用三个不同的键,例如(Ctrl + Shift + F12)在vb.net中打开另一个窗体。

请帮帮我。

在keydown事件中,您可以访问这些键。例如,在这个处理程序中…

Private Sub keyDown(ByVal Sender As Object, ByVal e As KeyEventArgs) handles me.keydown

…您可以使用布尔值e.Alt、e.Control和e.Shift来判断这些控制键是否按下。然后你可以这样做:

Select case CInt(e.keycode)
  case Keys.F12
    if e.Control andalso e.Shift then frm.ShowDialog
    ...

定义这个函数:

Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As IntPtr) As Short

所以你可以检查哪些键同时被按下:

'For example, keys "arrow up" and letter "W"
If GetKeyState(87) < 0 AndAlso GetKeyState(38) < 0 Then
     'Do something
End If

你可以在KeyDown事件或Timer中检查键。

您可以像xpda的回答一样使用键事件来处理它,或者,如果您已经有一个菜单项来执行相同的操作,您可以设置ToolStripMenuItem的ShortcutKeys属性。

最新更新