Share via


InkCollectorCursorDownEventHandler (Delegado)

Actualización: noviembre 2007

Representa el método que controla el evento CursorDown de un objeto InkCollector.

Espacio de nombres:  Microsoft.Ink
Ensamblado:  Microsoft.Ink (en Microsoft.Ink.dll)

Sintaxis

'Declaración
Public Delegate Sub InkCollectorCursorDownEventHandler ( _
    sender As Object, _
    e As InkCollectorCursorDownEventArgs _
)
'Uso
Dim instance As New InkCollectorCursorDownEventHandler(AddressOf HandlerMethod)
public delegate void InkCollectorCursorDownEventHandler(
    Object sender,
    InkCollectorCursorDownEventArgs e
)
public delegate void InkCollectorCursorDownEventHandler(
    Object^ sender, 
    InkCollectorCursorDownEventArgs^ e
)
/** @delegate */
public delegate void InkCollectorCursorDownEventHandler(
    Object sender,
    InkCollectorCursorDownEventArgs e
)
JScript no admite delegados.

Parámetros

Comentarios

Al crear un delegado de InkCollectorCursorDownEventHandler, se identifica el método que controla el evento. Para asociarlo al controlador de eventos, se debe agregar al evento una instancia del delegado. Siempre que se produce el evento, se llama a su controlador, a menos que se quite el delegado. Por motivos de rendimiento, el interés del evento predeterminado está desactivado, pero se activa automáticamente en código administrado si se agrega un controlador de eventos.

Este evento puede tener un efecto negativo sobre el rendimiento de la entrada manuscrita si una parte excesiva del código se ejecuta en los controladores de eventos.

Para mejorar el rendimiento de la entrada manuscrita en tiempo real, oculte el cursor del mouse mientras se está llevando a cabo. Para ello, oculte el cursor del mouse en el controlador de eventos MouseDown y muestre el cursor del mouse en el controlador de eventos MouseUp.

Ejemplos

En este ejemplo se muestra cómo puede suscribirse al evento CursorDown y al evento Stroke para calcular el período de tiempo que tarda el usuario en crear un trazo.

Al comienzo de un trazo, se desencadena el evento CursorDown. La hora actual se sitúa en la colección ExtendedProperties del objeto Stroke.

Private Sub mInkObject_CursorDown(ByVal sender As Object, ByVal e As InkCollectorCursorDownEventArgs)
    ' add extended property indicating the time the stroke started
    ' STROKE_START_GUID is class level string via GUID generator
    e.Stroke.ExtendedProperties.Add(New Guid(STROKE_START_GUID), DateTime.Now)
End Sub
private void mInkObject_CursorDown(object sender, InkCollectorCursorDownEventArgs e)
{
    // add extended property indicating the time the stroke started
    // STROKE_START_GUID is class level string via GUID generator
    e.Stroke.ExtendedProperties.Add(new Guid(STROKE_START_GUID), DateTime.Now);
}

Cuando se completa el trazo, se desencadena el evento Stroke. La hora de inicio se recupera de la colección ExtendedProperties del objeto Stroke y se usa para calcular el tiempo transcurrido.

Private Sub mInkObject_Stroke1(ByVal sender As Object, ByVal e As InkCollectorStrokeEventArgs)
    ' check to see if extended property for start time exists
    ' Attempting to access an extended property that hasn't been created throws an exception
    ' STROKE_START_GUID is class level string via GUID generator
    If (e.Stroke.ExtendedProperties.DoesPropertyExist(New Guid(STROKE_START_GUID))) Then

        Dim startTime As DateTime = DirectCast(e.Stroke.ExtendedProperties(New Guid(STROKE_START_GUID)).Data, DateTime)
        Dim endTime As DateTime = DateTime.Now
        Dim span As TimeSpan = New TimeSpan(endTime.Ticks - startTime.Ticks)

        ' add extended property indicating the time the stroke ended
        ' STROKE_END_GUID is class level string via GUID generator
        e.Stroke.ExtendedProperties.Add(New Guid(STROKE_END_GUID), endTime)

        ' display the number of seconds in creating this stroke
        Me.statusLabelStrokeTime.Text = span.TotalSeconds.ToString()
    End If
End Sub
private void mInkObject_Stroke1(object sender, InkCollectorStrokeEventArgs e)
{
    // check to see if extended property for start time exists
    // Attempting to access an extended property that hasn't been created throws an exception
    // STROKE_START_GUID is class level string via GUID generator
    if (e.Stroke.ExtendedProperties.DoesPropertyExist(new Guid(STROKE_START_GUID)))
    {
        DateTime startTime = (DateTime)e.Stroke.ExtendedProperties[new Guid(STROKE_START_GUID)].Data;
        DateTime endTime = DateTime.Now;
        TimeSpan span = new TimeSpan(endTime.Ticks - startTime.Ticks);

        // add extended property indicating the time the stroke ended
        // STROKE_END_GUID is class level string via GUID generator
        e.Stroke.ExtendedProperties.Add(new Guid(STROKE_END_GUID), endTime);

        // display the number of seconds in creating this stroke
        this.statusLabelStrokeTime.Text = span.TotalSeconds.ToString();
    }
}

Plataformas

Windows Vista

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Información de versión

.NET Framework

Compatible con: 3.0

Vea también

Referencia

Microsoft.Ink (Espacio de nombres)

InkCollector.CursorDown

InkCollector

InkCollectorCursorDownEventArgs