Last update Jul 13, 2007
up
top
Mouse gesture code by VB.NET
Public Class Form1
Dim mg_enable As Boolean '// Is gesturing?
Dim mg_x, mg_y, mg_dist As Integer '// original x, y location of mouse, gesture distance
Dim mg_direction As String '// Result of gestures
'// Mouse button was downed.
Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
If e.Button = Windows.Forms.MouseButtons.Right Then '// If it's right.
mg_enable = True '// Start mouse gesture!
mg_direction = "" '// Init gestures
mg_dist = 20 '// 1 gesture per 20 dot moving
mg_x = e.X '// Keep X location of mouse when right button was down.
mg_y = e.Y '// Keep Y location of mouse when right button was down.
End If
End Sub
'// Mouse button was uped.
Private Sub Form1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseUp
If e.Button = Windows.Forms.MouseButtons.Right Then '// If it's right.
mg_enable = False '// Stop mouse gesture.
Select Case mg_direction '// Execute gesture.
Case "DR" '// Exit
End
Case "RU" '// Maximize window / Restore Window Size
If Me.WindowState = FormWindowState.Normal Then
Me.WindowState = FormWindowState.Maximized
Else
Me.WindowState = FormWindowState.Normal
End If
End Select
End If
End Sub
'// Mouse moving
Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
'// if in gesturing
If mg_enable Then
'//
If Math.Abs(mg_x - e.X) > mg_dist Or Math.Abs(mg_y - e.Y) > mg_dist Then
'// direction decision by moving distance of x y
If Math.Abs(mg_x - e.X) > Math.Abs(mg_y - e.Y) Then
'// if direction is left
If mg_x > e.X Then
'// set new location of mouse
mg_x = e.X
'// if it's not same last gesture then add gesture
If Microsoft.VisualBasic.Right(mg_direction, 1) <> "L" Then
mg_direction = mg_direction & "L"
End If
Else
mg_x = e.X
If Microsoft.VisualBasic.Right(mg_direction, 1) <> "R" Then
mg_direction = mg_direction & "R"
End If
End If
Else
If mg_y > e.Y Then
mg_y = e.Y
If Microsoft.VisualBasic.Right(mg_direction, 1) <> "U" Then
mg_direction = mg_direction & "U"
End If
Else
mg_y = e.Y
If Microsoft.VisualBasic.Right(mg_direction, 1) <> "D" Then
mg_direction = mg_direction & "D"
End If
End If
End If
End If
End If
End Sub
End Class