+ Reply to Thread
Results 1 to 8 of 8

Thread: The Mouse in VB.NET

  1. #1
    Join Date
    Apr 2009
    Location
    Uppsala, Sweden
    Posts
    9,547
    Blog Entries
    5
    Rep Power
    98

    The Mouse in VB.NET

    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

  2. CODECALL Circuit advertisement
    Join Date
    Always
    Location
    Advertising world
    Posts
    Many

     
  3. #2
    Jordan Guest

    Re: The Mouse in VB.NET

    These type of mouse events are very handy when creating a GUI. Nicely done, +rep!

  4. #3
    Join Date
    Jul 2006
    Posts
    16,478
    Blog Entries
    75
    Rep Power
    143

    Re: The Mouse in VB.NET

    Nice +rep
    Programming is a branch of mathematics.
    My CodeCall Blog | My Personal Blog

  5. #4
    Zerkei is offline Newbie
    Join Date
    Dec 2009
    Posts
    8
    Rep Power
    0

    Re: The Mouse in VB.NET

    Nice tutorial, though those mouse movements can only be recorded if the user is on the form right?

  6. #5
    Join Date
    Apr 2009
    Location
    Uppsala, Sweden
    Posts
    9,547
    Blog Entries
    5
    Rep Power
    98

    Re: The Mouse in VB.NET

    Yes

    This answer is wrong, what were I thinking lol...
    Last edited by Vswe; 09-30-2010 at 01:37 PM.

  7. #6
    arkanion is offline Newbie
    Join Date
    Jan 2010
    Posts
    10
    Rep Power
    0

    Re: The Mouse in VB.NET

    thanks

  8. #7
    Join Date
    Sep 2010
    Location
    Yangon, Myanmar
    Posts
    7
    Rep Power
    0

    Re: The Mouse in VB.NET

    thanks

  9. #8
    Jarryd's Avatar
    Jarryd is offline Learning Programmer
    Join Date
    Sep 2010
    Location
    Queensland, Australia
    Posts
    63
    Rep Power
    6

    Re: The Mouse in VB.NET

    Nice tutorial mate, this will come of good use in the complicated GUI

+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Mouse in SDL
    By Apprentice123 in forum C and C++
    Replies: 3
    Last Post: 09-11-2011, 07:22 PM
  2. ps3 controller to mouse
    By imagiro in forum General Programming
    Replies: 3
    Last Post: 11-20-2010, 01:36 AM
  3. disabeling the mouse
    By ikkeugh in forum Visual Basic Programming
    Replies: 2
    Last Post: 12-15-2008, 01:51 PM
  4. The First Mouse
    By littlefranciscan in forum Technology Ramble
    Replies: 12
    Last Post: 05-06-2007, 08:42 AM
  5. Mac Mouse Button
    By encoder in forum General Programming
    Replies: 8
    Last Post: 07-12-2006, 01:14 PM

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts