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 |
|
Se produce únicamente cuando se presiona una tecla por primera vez. |
KeyPress |
|
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 |
|
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 |
|
Se produce cuando se presiona un botón del mouse mientras el puntero del mouse está sobre el control. |
MouseEnter |
|
Se produce cuando el cursor del mouse entra por primera vez en la zona del control. |
MouseHover |
|
Se produce cuando el puntero pasa por encima del control. |
MouseLeave |
|
Se produce cuando el puntero sale de la zona del control. |
MouseMove |
|
Se produce cuando el puntero se desplaza por la zona del control. |
MouseUp |
|
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