Controlar la introducción de datos por el usuario
En este tema se describen los principales eventos de teclado y mouse que proporciona System.Windows.Forms.Control. Al controlar un evento, los creadores de controles deben reemplazar el método On
EventName 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 On
EventName.
Eventos de teclado
Los eventos de teclado comunes que el control puede controlar son KeyDown, KeyPress y KeyUp.
Nombre del evento | Método que se va a invalidar | 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 que defina el sistema operativo. |
KeyUp |
void OnKeyUp(KeyEventArgs) |
Se produce cuando se suelta una tecla. |
Nota:
Controlar la entrada mediante teclado es mucho más complejo que invalidar los eventos de la tabla anterior y escapa al ámbito de este tema. Para más información, consulte Datos proporcionados por el usuario en Windows Forms.
Eventos del mouse
Los eventos del mouse que el control puede controlar son MouseDown, MouseEnter, MouseHover, MouseLeave, MouseMove y MouseUp.
Nombre del evento | Método que se va a invalidar | 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 se invalida el evento MouseDown.
protected override void OnMouseDown(MouseEventArgs e) {
base.OnMouseDown(e);
if (!allowUserEdit) {
return;
}
Capture = true;
dragging = true;
SetDragValue(new Point(e.X, e.Y));
}
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
En el siguiente fragmento de código se muestra un ejemplo de cómo se invalida el evento MouseMove.
protected override void OnMouseMove(MouseEventArgs e) {
base.OnMouseMove(e);
if (!allowUserEdit || !dragging) {
return;
}
SetDragValue(new Point(e.X, e.Y));
}
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
En el siguiente fragmento de código se muestra un ejemplo de cómo se invalida el evento MouseUp.
protected override void OnMouseUp(MouseEventArgs e) {
base.OnMouseUp(e);
if (!allowUserEdit || !dragging) {
return;
}
Capture = false;
dragging = false;
value = dragValue;
OnValueChanged(EventArgs.Empty);
}
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
Para obtener el código fuente completo del ejemplo FlashTrackBar
, vea Crear un control de Windows Forms que muestre el progreso.
Consulte también
.NET Desktop feedback