如何从另一个Sub调用带有KeyEventArgs的Sub

时间:2016-07-28 14:58:37

标签: vb.net events call keyboard-events keyevent

我有两个潜艇

Private Sub kbHook_KeyDown(ByVal Key As System.Windows.Forms.Keys) Handles KeyHook.KeyDown

Private Sub Form1_KeyPressCaps(ByVal key As Object, e As KeyEventArgs) Handles Me.KeyDown

    If e.KeyCode = Keys.CapsLock Then
        If keyStCL = True Then

            checkbutton_caps.Checked = False
            checkbutton_caps.Image = My.Resources.Resource1.btn_ico_caps_off
            'Image.FromFile("resources\btn_ico_caps_off.png")
            keyStCL = False

        ElseIf keyStCL = False Then
            checkbutton_caps.Checked = True
            checkbutton_caps.Image = My.Resources.Resource1.btn_ico_caps_on
            'Image.FromFile("resources\btn_ico_caps_on.png")
            keyStCL = True

        End If
    End If
End Sub

我想从kbHook_KeyDown调用Form1_KeyPressCaps。我该怎么做。
我试过这个:

Private Sub kbHook_KeyDown(ByVal Key As System.Windows.Forms.Keys) Handles KeyHook.KeyDown
    Call Form1_KeyPressCaps(Key, New KeyEventArgs)
End Sub

但它不起作用。我收到一个错误:

  

未为'Public Sub New(keyData As System.Windows.Forms.Keys)'的参数'keyData'指定参数。

1 个答案:

答案 0 :(得分:1)

Private Sub kbHook_KeyDown(ByVal Key As System.Windows.Forms.Keys) Handles KeyHook.KeyDown
    Call Form1_KeyPressCaps(Key, New KeyEventArgs(Key))
End Sub