使用Me.KeyDown无法检测到Ctrl + Shift + H.

Jam*_*mie 3 vb.net

Ctrl+ Shift+ 期间没有反应的代码H被按下:

Private Sub HideMode(ByVal sendeer As System.Object, ByVal e As KeyEventArgs) Handles Me.KeyDown
    Select Case CInt(e.KeyCode)
        Case Keys.ControlKey
            If e.Shift AndAlso e.KeyValue = Convert.ToInt32(Convert.ToChar(Keys.H)) Then
                MsgBox("Test hide function")
            End If
    End Select
End Sub
Run Code Online (Sandbox Code Playgroud)

预期的结果是,按Ctrl+ Shift+ Ha后msgbox会显示文字"Test hide function"

这里的错误是什么?

Ste*_*eve 5

我没有理解为什么你尝试将KeyCode转换为整数时,使用Keys枚号可以轻松完成相同的工作

Select Case e.KeyCode
    Case Keys.H
        If (e.Control AndAlso e.Shift) Then 
            MsgBox("Test hide function")
        End If
End Select
Run Code Online (Sandbox Code Playgroud)

编辑嗯,WebBrowser控件是一个不同的野兽.您需要为它添加一个特定的KeyDown处理程序(除了在Focus处于其他控件时处理KeyDown的另一个处理程序)

Private Sub Browser_PreviewKeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PreviewKeyDownEventArgs) Handles WebBrowser1.PreviewKeyDown
    Select Case e.KeyCode
        Case Keys.H
            If e.Shift AndAlso e.Control Then
                MsgBox("Test hide function")
            End If
    End Select
End Sub
Run Code Online (Sandbox Code Playgroud)