In this tutorial I will show how to get the actions made by the mouse but also show you how to control the mouse.
Its Location
To get the position where the mouse is on the screen you can use MousePosition, you will then get the mouse's position of the screen as a point, so to get the X and Y values you just do something like this:
[highlight=VB.NET] MessageBox.Show("X: " & MousePosition.X & " Y: " & MousePosition.Y)[/highlight]
But you can do the same thing with Cursor.Position, like so:
[highlight=VB.NET] MessageBox.Show("X: " & Cursor.Position.X & " Y: " & Cursor.Position.Y)
[/highlight]
And Cursor.Position is not readonly as MousePosition is, this means you can move the mouse cursor to a special point of the screen like this:
[highlight=VB.NET] Cursor.Position = New Point(250, 250)[/highlight]
Get which button was used
When using the MouseDown event:
[highlight=VB.NET] Private Sub frmMain_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseClick
End Sub[/highlight]
on something we can check which button that was press by using:
[highlight=VB.NET]e.Button.ToString[/highlight]
Since e.Button is an Enum with all the different buttons you can also do like this:
[highlight=VB.NET] Private Sub frmMain_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseClick
Select (e.Button)
Case Windows.Forms.MouseButtons.Left
MessageBox.Show("You pressed the left button")
Case Windows.Forms.MouseButtons.Right
MessageBox.Show("Don't use the Right button, use the left instead")
Case Windows.Forms.MouseButtons.Middle
MessageBox.Show("Scroll with it instead")
Case Windows.Forms.MouseButtons.XButton1
MessageBox.Show("Extra button 1 was pressed")
Case Windows.Forms.MouseButtons.XButton2
MessageBox.Show("Extra button 2 was pressed")
Case Windows.Forms.MouseButtons.None
MessageBox.Show("No button was pressed :S")
End Select
End Sub[/highlight]
Scrolling
You can also get the direction and how much you scrolled with the mouse wheel by using the MouseWheel event:
[highlight=VB.NET] Private Sub frmMain_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseWheel
MessageBox.Show(e.Delta)
End Sub[/highlight]
e.Delta is how much you scrolled, this is depending on the options in the control panel about mouse wheel scrolling. So we can't be sure what these values will be, but the good thing is that scrolling ups is always positive and scrolling down is negative. So therefor we can do like this:
[highlight=VB.NET] Private Sub frmMain_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseWheel
If e.Delta > 0 Then
MessageBox.Show("You scrolled up")
ElseIf e.Delta < 0 Then
MessageBox.Show("You scrolled down")
End If
End Sub[/highlight]
Simulating mouse clicks
It's also possible to simulate mouse clicks from button 1,2 and 3 (Left, Right and Middle). To do this we first need to declare the mouse clicking sub:
[highlight=VB.NET] Private Declare Sub mouse_event Lib "user32.dll" (ByVal dwFlags As Integer, ByVal dx As Integer, ByVal dy As Integer, ByVal cButtons As Integer, ByVal dwExtraInfo As Integer)[/highlight]
Then we create another sub to easier use it:
[highlight=VB.NET] Private Sub Mouse_Click(ByVal button As Integer, ByVal state As String)
Select Case button
Case 1
If state = "down" Then
mouse_event(2, 100, 100, 0, 0)
Else
mouse_event(4, 100, 100, 0, 0)
End If
Case 2
If state = "down" Then
mouse_event(8, 100, 100, 0, 0)
Else
mouse_event(16, 100, 100, 0, 0)
End If
Case 3
If state = "down" Then
mouse_event(32, 100, 100, 0, 0)
Else
mouse_event(64, 100, 100, 0, 0)
End If
End Select
End Sub[/highlight]
So if we now want to simulate a click from button 2(Right mouse button) we'll do like this:
[highlight=VB.NET]Mouse_Click(2, "down")
Mouse_Click(2, "up")[/highlight]
And that was everything for this tutorial, I hope you learned something :)
The Mouse in VB.NET
Started by Vswe, Nov 08 2009 05:07 AM
7 replies to this topic
#1
Posted 08 November 2009 - 05:07 AM
|
|
|
#2
Guest_Jordan_*
Posted 08 November 2009 - 03:22 PM
Guest_Jordan_*
These type of mouse events are very handy when creating a GUI. Nicely done, +rep!
#3
Posted 13 November 2009 - 08:17 AM
#4
Posted 26 December 2009 - 10:45 AM
Nice tutorial, though those mouse movements can only be recorded if the user is on the form right?
#5
Posted 26 December 2009 - 01:00 PM
This answer is wrong, what were I thinking lol...
Edited by Vswe, 30 September 2010 - 12:37 PM.
#6
Posted 13 January 2010 - 12:01 PM
thanks
#7
Posted 23 September 2010 - 09:44 PM
thanks
#8
Posted 24 September 2010 - 12:14 AM
Nice tutorial mate, this will come of good use in the complicated GUI


Sign In
Create Account


Back to top









