Milot25
Milot25

Reputation: 337

Mouse click and hold event?

Does anyone have an idea how to handle a mouse click and hold event in VB.NET?

Suppose I want to click and hold in a button and do some stuff behind the code like change the button BackColor or close a window faster( just like when you click in the ms office 2013 file menu then use a left-arrow to close that menu).

Hope you know what I mean

Thank you

Upvotes: 2

Views: 11823

Answers (2)

Leopold Stotch
Leopold Stotch

Reputation: 1522

You could create a timer that is defined globally that begins when MouseDown is called, then ends on Mouse Up. You can then set a condition on how many milliseconds need to pass before you deem it a 'long click'. See example code below:

Public Class Form1
Dim WithEvents timer As New Timer
Dim milliseconds As Integer


Private Sub Form1_MouseDown(sender As Object, e As MouseEventArgs) Handles MyBase.MouseDown
    timer.Start()
End Sub

Private Sub Form1_MouseUp(sender As Object, e As MouseEventArgs) Handles MyBase.MouseUp
    timer.Stop()
    Label1.Text = "Button held down for: " & milliseconds & " milliseconds"
    If milliseconds >= 10 then 'Mouse has been down for one second
      DoSomething()
    End If
End Sub

Private Sub EggTimer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timer.Tick
    milliseconds += 1
End Sub


End Class

Upvotes: 4

Jason Hughes
Jason Hughes

Reputation: 778

MouseDown is what you are looking for

Upvotes: 1

Related Questions