Compartir a través de


Controlar la introducción de datos por el usuario

En este tema se describen los principales eventos de teclado y mouse (ratón) proporcionados por System.Windows.Forms.Control. Al controlar un evento, los creadores de controles deben reemplazar el método OnEventName protegido en lugar de asociar un delegado al evento. Para hacer un repaso de los eventos, vea Provocar eventos de un componente.

Nota

Si no existen datos asociados a un evento, se pasa una instancia de la clase base EventArgs como argumento al método OnEventName.

Eventos de teclado

Los eventos de teclado habituales que se pueden controlar son KeyDown, KeyPress y KeyUp.

Nombre del evento Método que se va a reemplazar Descripción del evento

KeyDown

void OnKeyDown(KeyEventArgs)

Se produce únicamente cuando se presiona una tecla por primera vez.

KeyPress

void OnKeyPress

(KeyPressEventArgs)

Se produce cada vez que se presiona una tecla. Si la tecla se mantiene presionada, se produce un evento KeyPress a la velocidad de repetición definida por el sistema operativo.

KeyUp

void OnKeyUp(KeyEventArgs)

Se produce cuando se suelta una tecla.

Nota

Controlar la entrada de datos desde teclado es mucho más complejo que reemplazar los eventos de la tabla anterior y escapa al ámbito de este tema. Para obtener más información, vea Datos proporcionados por el usuario en formularios Windows Forms.

Eventos del mouse

Los eventos del mouse que puede controlar el control son MouseDown, MouseEnter, MouseHover, MouseLeave, MouseMove y MouseUp.

Nombre del evento Método que se va a reemplazar Descripción del evento

MouseDown

void OnMouseDown(MouseEventArgs)

Se produce cuando se presiona un botón del mouse mientras el puntero del mouse está sobre el control.

MouseEnter

void OnMouseEnter(EventArgs)

Se produce cuando el cursor del mouse entra por primera vez en la zona del control.

MouseHover

void OnMouseHover(EventArgs)

Se produce cuando el puntero pasa por encima del control.

MouseLeave

void OnMouseLeave(EventArgs)

Se produce cuando el puntero sale de la zona del control.

MouseMove

void OnMouseMove(MouseEventArgs)

Se produce cuando el puntero se desplaza por la zona del control.

MouseUp

void OnMouseUp(MouseEventArgs)

Se produce cuando se suelta el botón del mouse mientras el puntero está encima del control o sale de la zona del control.

En el siguiente fragmento de código se muestra un ejemplo de cómo reemplazar el evento MouseDown.

Protected Overrides Sub OnMouseDown(ByVal e As MouseEventArgs)
    MyBase.OnMouseDown(e)
    If Not (myAllowUserEdit) Then
        Return
    End If
    Capture = True
    dragging = True
    SetDragValue(New Point(e.X, e.Y))
End Sub
protected override void OnMouseDown(MouseEventArgs e) {
    base.OnMouseDown(e);
    if (!allowUserEdit) {
        return;
    }
    Capture = true;
    dragging = true;
    SetDragValue(new Point(e.X, e.Y));
}

En el siguiente fragmento de código se muestra un ejemplo de cómo reemplazar el evento MouseMove.

Protected Overrides Sub OnMouseMove(ByVal e As MouseEventArgs)
    MyBase.OnMouseMove(e)
    If (Not myAllowUserEdit Or Not dragging) Then
        Return
    End If
    SetDragValue(New Point(e.X, e.Y))
End Sub
protected override void OnMouseMove(MouseEventArgs e) {
    base.OnMouseMove(e);
    if (!allowUserEdit || !dragging) {
        return;
    }
    SetDragValue(new Point(e.X, e.Y));
}

En el siguiente fragmento de código se muestra un ejemplo de cómo reemplazar el evento MouseUp.

Protected Overrides Sub OnMouseUp(ByVal e As MouseEventArgs)
    MyBase.OnMouseUp(e)
    If (Not myAllowUserEdit Or Not dragging) Then
        Return
    End If
    Capture = False
    dragging = False
    Value = dragValue
    OnValueChanged(EventArgs.Empty)
End Sub
protected override void OnMouseUp(MouseEventArgs e) {
    base.OnMouseUp(e);
    if (!allowUserEdit || !dragging) {
        return;
    }
    Capture = false;
    dragging = false;
    value = dragValue;
    OnValueChanged(EventArgs.Empty);
}

Para obtener el código fuente completo del ejemplo FlashTrackBar, vea Cómo: Crear un control de formularios Windows Forms que muestre el progreso.

Vea también

Conceptos

Eventos de los controles de formularios Windows Forms
Definir un evento en los controles de formularios Windows Forms

Otros recursos

Controlar y provocar eventos
Datos proporcionados por el usuario en formularios Windows Forms