vb.net组合键

Ell*_*ott 9 vb.net

我正在尝试在我的VB.net应用程序中捕获两个按键,对于此示例CTRL + B,下面的代码不起作用,但它适用于单个键.我已经尝试将keypreview设置为true,但这没有任何效果.

  Private Sub main_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles mybase.KeyDown
            If e.KeyCode = Keys.ControlKey And e.KeyCode = Keys.B Then
                MsgBox("CTRL + B Pressed !")
            End If
        End Sub
    End Class
Run Code Online (Sandbox Code Playgroud)

谢谢

Stu*_*son 17

Control键是Modifier键.此代码测试Ctrl + B.

e.KeyCode = Keys.B AndAlso e.Modifiers = Keys.Control
Run Code Online (Sandbox Code Playgroud)

键码为B,但修饰符为Ctrl.

您的代码段已更新:

Private Sub main_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles mybase.KeyDown
    If (e.KeyCode = Keys.B AndAlso e.Modifiers = Keys.Control) Then
        MsgBox("CTRL + B Pressed !")
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)