Solved

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

Posted on 2010-11-26
4
1,078 Views
Last Modified: 2012-05-10
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
0
Comment
Question by:gopalhazel
  • 2
  • 2
4 Comments
 
LVL 35

Expert Comment

by:Miguel Oz
ID: 34221068
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
 

Author Comment

by:gopalhazel
ID: 34221432
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
 
LVL 35

Accepted Solution

by:
Miguel Oz earned 500 total points
ID: 34223299
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
 

Author Comment

by:gopalhazel
ID: 34227857
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

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Gridview selected row 9 49
cannot connect to sqlserver 8 34
Looping through datagridview and dataset ? 6 24
VB.Net Determine if a mapped network drive exists 2 30
Article by: jpaulino
XML Literals are a great way to handle XML files and the community doesn’t use it as much as it should.  An XML Literal is like a String (http://msdn.microsoft.com/en-us/library/system.string.aspx) Literal, only instead of starting and ending with w…
Microsoft Reports are based on a report definition, which is an XML file that describes data and layout for the report, with a different extension. You can create a client-side report definition language (*.rdlc) file with Visual Studio, and build g…
Email security requires an ever evolving service that stays up to date with counter-evolving threats. The Email Laundry perform Research and Development to ensure their email security service evolves faster than cyber criminals. We apply our Threat…
In an interesting question (https://www.experts-exchange.com/questions/29008360/) here at Experts Exchange, a member asked how to split a single image into multiple images. The primary usage for this is to place many photographs on a flatbed scanner…

839 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question