InkCollectorSystemGestureEventHandler Delegate
Represents the method that handles the Gesture event of an InkCollector object.
Namespace: Microsoft.Ink
Assembly: Microsoft.Ink (in microsoft.ink.dll)
Syntax
'Declaration
Public Delegate Sub InkCollectorSystemGestureEventHandler ( _
sender As Object, _
e As InkCollectorSystemGestureEventArgs _
)
'Usage
Dim instance As New InkCollectorSystemGestureEventHandler(AddressOf HandlerMethod)
public delegate void InkCollectorSystemGestureEventHandler (
Object sender,
InkCollectorSystemGestureEventArgs e
)
public delegate void InkCollectorSystemGestureEventHandler (
Object^ sender,
InkCollectorSystemGestureEventArgs^ e
)
/** @delegate */
public delegate void InkCollectorSystemGestureEventHandler (
Object sender,
InkCollectorSystemGestureEventArgs e
)
Not applicable.
Parameters
- sender
The source InkCollector object of this event.
- e
The InkCollectorSystemGestureEventArgs object that contains the event data.
Remarks
When you create an InkCollectorSystemGestureEventHandler delegate, you identify the method that handles the event. To associate the event with your event handler, add an instance of the delegate to the event. The event handler is called whenever the event occurs, unless you remove the delegate.
System gestures give information about the Cursor object that is being used to create the gesture. They also provide shortcuts to combinations of mouse events and are effective ways to detect mouse events.
For example, instead of listening for a MouseUp and MouseDown pair of events with no other mouse events occurring in between, listen for the Tap or RightTap system gestures.
As another example, instead of listening for MouseDown and MouseMove events and getting numerous MouseMove messages, listen for the Drag or RightDrag system gestures, as long as you have no need for the (x, y) coordinates of every position of the mouse. This allows you to receive only one message instead of numerous MouseMove messages.
For a list of specific system gestures, see the SystemGesture enumeration type. For more information about system gestures, see Using Gestures and Command Input on the Tablet PC.
Example
This simple C# example displays gesture event information in the status bar of the main form window. Starting with a generic generated application, add a status bar, theStatusBar
to the main form, and then add the following code.
//...
using Microsoft.Ink;
namespace CSGestureEvents
{
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.StatusBar theStatusBar;
// ... The generated code will be here.
//Add this code following the implementation of Main():
InkCollector theInkCollector;
private void Form1_Load(object sender, System.EventArgs e)
{
// Initialize the InkCollector object.
theInkCollector = new InkCollector(Handle);
theInkCollector.CollectionMode = CollectionMode.InkAndGesture;
ClearAppGestures(theInkCollector);
// Turn on interest in the ChevronDown application gesture.
theInkCollector.SetGestureStatus(ApplicationGesture.ChevronDown, true);
theInkCollector.SetGestureStatus(ApplicationGesture.ChevronUp, true);
theInkCollector.Gesture += new InkCollectorGestureEventHandler(Gesture_Event);
theInkCollector.SystemGesture += new InkCollectorSystemGestureEventHandler(SystemGesture_Event);
theInkCollector.Enabled = true;
}
private void Gesture_Event(object sender,
InkCollectorGestureEventArgs e)
{
Gesture theGesture = e.Gestures[0];
theStatusBar.Text = theGesture.Id.ToString();
// Cancelling the gesture will cause the ink to remain.
if (theGesture.Id == ApplicationGesture.ChevronDown)
e.Cancel = true;
}
private void SystemGesture_Event(object sender,
InkCollectorSystemGestureEventArgs e)
{
SystemGesture theGesture = e.Id;
theStatusBar.Text = "System: " + theGesture.ToString() +
" " + e.Point.ToString();
}
// Set all of the ApplicationGestures' status
// to false on the InkCollector object.
private void ClearAppGestures()
{
ApplicationGesture test = ApplicationGesture.NoGesture;
Array theGestures = System.Enum.GetValues(test.GetType());
foreach (ApplicationGesture theGesture in theGestures)
{
theInkCollector.SetGestureStatus(theGesture, false);
}
}
// Event handler for the form's closed event
private void Form1_Closed(object sender, System.EventArgs e)
{
theInkCollector.Dispose();
theInkCollector = null;
}
}
}
This Microsoft® Visual Basic® .NET example displays gesture event information in the status bar of the main form window. Starting with a generic generated application, add a status bar, theStatusBar
to the main form, and then add the following code.
Imports Microsoft.Ink
Public Class Form1
Inherits System.Windows.Forms.Form
#Region " Windows Form Designer generated code "
'This contains the standard generated form code, with
'the addition of a Status Bar, theStatusBar.
#End Region
Dim theInkCollector As InkCollector
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Initialize InkCollector.
theInkCollector = New InkCollector(Handle)
'Set the InkCollector to collect both ink and gestures.
theInkCollector.CollectionMode = CollectionMode.InkAndGesture
'Clear interest in all of the application gestures
ClearAppGestures(theInkCollector)
'Set the interest in only two gestures.
theInkCollector.SetGestureStatus(ApplicationGesture.ChevronDown, True)
theInkCollector.SetGestureStatus(ApplicationGesture.ChevronUp, True)
'Add the handlers for application and system gestures.
AddHandler theInkCollector.Gesture, AddressOf Gesture_Event
AddHandler theInkCollector.SystemGesture, AddressOf SystemGesture_Event
theInkCollector.Enabled = True
End Sub
Private Sub Gesture_Event(ByVal sender As Object, _
ByVal e As InkCollectorGestureEventArgs)
Dim theGesture As Gesture = e.Gestures(0)
theStatusBar.Text = theGesture.Id.ToString()
'Cancelling the gesture will cause the ink to remain.
If theGesture.Id = ApplicationGesture.ChevronDown Then
e.Cancel = True
End If
End Sub
Private Sub SystemGesture_Event( _
ByVal sender As Object, _
ByVal e As InkCollectorSystemGestureEventArgs)
theStatusBar.Text = "System: " + e.Id.ToString() + " " + e.Point.ToString()
End Sub
' Set all of the ApplicationGestures' status
' to false on the InkCollector object.
Private Sub ClearAppGestures()
Dim test As ApplicationGesture = ApplicationGesture.NoGesture
Dim theGestures As Array = System.Enum.GetValues(test.GetType())
Dim theGesture As ApplicationGesture
For Each theGesture In theGestures
theInkCollector.SetGestureStatus(theGesture, False)
Next
End Sub
'Event handler for the form's closed event
Private Sub Form1_Closed(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Closed
theInkCollector.Dispose()
Set theInkCollector = Nothing
End Sub
End Class
Platforms
Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.
Version Information
.NET Framework
Supported in: 3.0