how to fire textbox double click event on F2 press in vb.net

Hi,
I want to excute Textbox1's double click event on keyboard's F2 press.

Private Sub Form1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp
        'Dim KeyCode As Short = e.KeyCode
        'Dim Shift As Short = e.KeyData \ &H10000
        Try
            'Call gf_ProcessKey(KeyCode, Shift, True, Me)
            If e.KeyCode = Keys.F2 Then
-------------how to call textbox1's double click event from here------- i want to make it generic i.e.
it should get executed depending upon me.activecontrol--------------------------
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub

code for double click event:
 Private Sub TextBox1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.DoubleClick
        Try
            MonthCalendar1.Visible = True

        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
gopalhazelAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
Miguel OzConnect With a Mentor Software EngineerCommented:
My posted solution is generic enough, your key up method will be: (notice Me.TextBox1 as the sender)
Private Sub Form1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp
        'Dim KeyCode As Short = e.KeyCode
        'Dim Shift As Short = e.KeyData \ &H10000
        Try
            'Call gf_ProcessKey(KeyCode, Shift, True, Me)
            If e.KeyCode = Keys.F2 Then
                  DoubleClickHandler(Me.TextBox1, null)
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub

You do not require a SendMessage call for implementing a solution for your question.
0
 
Miguel OzSoftware EngineerCommented:
Just implement a private method to be called by key and double click event

Private Sub DoubleClickHandler(ByVal sender As Object, ByVal e As System.EventArgs)
        Try
            MonthCalendar1.Visible = True

        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub

e.g your double click nows look like:
Private Sub TextBox1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.DoubleClick
       DoubleClickHandler(sender, e)
 End Sub

do the same for the other handler.
0
 
gopalhazelAuthor Commented:
actually i want to do using sendmessage API , but it is not calling double click event
for e.g.

   Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
    Public Const WM_LBUTTONDBLCLK As Short = &H203S

Private Sub Form1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp
            Try
                If e.KeyCode = Keys.F2 Then
                     Call SendMessage(Me.ActiveControl.Handle, WM_LBUTTONDBLCLK, 0, 0)
              End If

        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub

so what can be done??
0
 
gopalhazelAuthor Commented:
thank you for the help.

alternatively, i have used as,

 Private Sub Form1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp
 If e.KeyCode = Keys.F2 Then
                Dim CntrName As String = Me.ActiveControl.Name()
                CntrName = CntrName & "_DoubleClick"

                Dim myType As Type = Me.GetType()
                Dim m As MethodInfo = myType.GetMethod(CntrName, BindingFlags.NonPublic Or BindingFlags.Instance)

                If IsNothing(m) Then Exit Sub
                Dim Fargs = New Object(1) {}

                Fargs(0) = Me
                Fargs(1) = New System.EventArgs()
                m.Invoke(Me, Fargs)
            End If
End Sub
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.