Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La mayoría de los programas de Windows Forms procesan la entrada del mouse controlando los eventos del mouse. En este artículo se proporciona información general sobre los eventos del mouse, incluidos los detalles sobre cuándo usar cada evento y los datos proporcionados para cada evento. Para obtener más información sobre los eventos en general, vea Información general sobre eventos.
Eventos de mouse
La forma principal de responder a la entrada del mouse es controlar los eventos del mouse. En la tabla siguiente se muestran los eventos del mouse y se describen cuándo se generan.
| Evento de ratón | Descripción |
|---|---|
| Click | Este evento se produce cuando se suelta el botón del mouse, normalmente antes del MouseUp evento. El controlador de este evento recibe un argumento de tipo EventArgs. Controle este evento cuando solo necesite determinar cuándo se produce un clic. |
| MouseClick | Este evento se produce cuando el usuario hace clic en el control con el mouse. El controlador de este evento recibe un argumento de tipo MouseEventArgs. Gestiona este evento cuando necesites obtener información sobre el ratón al producirse un clic. |
| DoubleClick | Este evento se produce cuando se hace doble clic en el control. El controlador de este evento recibe un argumento de tipo EventArgs. Controle este evento cuando solo necesite determinar cuándo se produce un doble clic. |
| MouseDoubleClick | Este evento se produce cuando el usuario hace doble clic en el control con el mouse. El controlador de este evento recibe un argumento de tipo MouseEventArgs. Controle este evento cuando necesite obtener información sobre el mouse cuando se produce un doble clic. |
| MouseDown | Este evento se produce cuando el puntero del mouse está sobre el control y el usuario presiona un botón del mouse. El controlador de este evento recibe un argumento de tipo MouseEventArgs. |
| MouseEnter | Este evento se produce cuando el puntero del mouse entra en el borde o el área cliente del control, en función del tipo de control. El controlador de este evento recibe un argumento de tipo EventArgs. |
| MouseHover | Este evento se produce cuando el puntero del mouse se detiene y descansa sobre el control. El controlador de este evento recibe un argumento de tipo EventArgs. |
| MouseLeave | Este evento se produce cuando el puntero del mouse deja el borde o el área cliente del control, en función del tipo del control. El controlador de este evento recibe un argumento de tipo EventArgs. |
| MouseMove | Este evento se produce cuando el puntero del mouse se mueve mientras está sobre un control. El controlador de este evento recibe un argumento de tipo MouseEventArgs. |
| MouseUp | Este evento se produce cuando el puntero del mouse está sobre el control y el usuario suelta un botón del mouse. El controlador de este evento recibe un argumento de tipo MouseEventArgs. |
| MouseWheel | Este evento se produce cuando el usuario gira la rueda del mouse mientras el control tiene el foco. El controlador de este evento recibe un argumento de tipo MouseEventArgs. Utilice la propiedad MouseEventArgs.Delta para determinar la distancia que ha desplazado el ratón. |
Información del mouse
Un MouseEventArgs se envía a los controladores de eventos del ratón relacionados con hacer clic con un botón del ratón y realizar un seguimiento de los movimientos del ratón. MouseEventArgs proporciona información sobre el estado actual del mouse, incluida la ubicación del puntero del mouse en coordenadas de cliente, qué botones del mouse se presionan y si la rueda del mouse se ha desplazado. Varios eventos del mouse, como los que se generan cuando el puntero del mouse ha entrado o dejado los límites de un control, envían un EventArgs al controlador de eventos sin más información.
Si desea conocer el estado actual de los botones del mouse o la ubicación del puntero del mouse, y desea evitar controlar un evento del mouse, también puede usar las MouseButtons propiedades y MousePosition de la Control clase . MouseButtons devuelve información sobre qué botones del mouse se presionan actualmente. MousePosition Devuelve las coordenadas de pantalla del puntero del mouse y es equivalente al valor devuelto por Position.
Conversión entre coordenadas de pantalla y cliente
Dado que alguna información de ubicación del mouse está en coordenadas de cliente y algunas están en coordenadas de pantalla, es posible que tenga que convertir un punto de un sistema de coordenadas a otro. Puede hacerlo fácilmente mediante los PointToClient métodos y PointToScreen disponibles en la Control clase .
Comportamiento estándar del evento Click
Si desea controlar los eventos de clic del mouse en el orden adecuado, debe saber el orden en el que se generan los eventos de clic en los controles de Windows Forms. Todos los controles de Windows Forms generan eventos de clic en el mismo orden cuando se presiona y suelta cualquier botón de mouse compatible, excepto donde se indica en la lista siguiente para controles individuales. En la lista siguiente se muestra el orden de los eventos generados para un solo clic de botón del mouse:
- MouseDown evento.
- Click evento.
- MouseClick evento.
- MouseUp evento.
A continuación se muestra el orden de los eventos generados para un doble clic con el botón del mouse:
MouseDown evento.
Click evento.
MouseClick evento.
MouseUp evento.
MouseDown evento.
DoubleClick evento.
Esto puede variar, en función de si el control en cuestión tiene establecido el bit de estilo StandardDoubleClick en
true. Para obtener más información sobre cómo establecer un ControlStyles bit, vea el SetStyle método .MouseDoubleClick evento.
MouseUp evento.
Controles individuales
Los siguientes controles no se ajustan al comportamiento estándar del evento de clic del mouse:
-
Nota:
Para el ComboBox control, el comportamiento del evento detallado más adelante se produce si el usuario hace clic en el campo de edición, el botón o en un elemento de la lista.
- Haga clic con el botón izquierdo: Click, MouseClick
- Clic derecho: No se generan eventos de clic
- Haga doble clic con el botón izquierdo: Click, MouseClick; , ClickMouseClick
- Haga doble clic con el botón derecho: No se generaron eventos de clic
TextBox, RichTextBox, ListBox, MaskedTextBox, y CheckedListBox controles
Nota:
El comportamiento del evento detallado más adelante se produce cuando el usuario hace clic en cualquier parte de estos controles.
- Haga clic con el botón izquierdo: Click, MouseClick
- Clic derecho: No se generan eventos de clic
- Haga doble clic con el botón izquierdo: Click, MouseClick, , DoubleClicky MouseDoubleClick
- Haga doble clic con el botón derecho: No se generaron eventos de clic
ListView control
Nota:
El comportamiento del evento detallado más adelante solo se produce cuando el usuario hace clic en los elementos del ListView control. No se genera ningún evento para clics en otras partes del control. Además de los eventos descritos más adelante, hay eventos BeforeLabelEdit y AfterLabelEdit, que pueden interesarle a usted si desea usar la validación con el control ListView.
- Haga clic con el botón izquierdo: Click, MouseClick
- Haga clic con el botón derecho en : Click, MouseClick
- Haga doble clic con el botón izquierdo: Click, MouseClick; , DoubleClickMouseDoubleClick
- Haga doble clic con el botón derecho: Click, MouseClick; , DoubleClickMouseDoubleClick
TreeView control
Nota:
El comportamiento del evento detallado más adelante solo se produce cuando el usuario hace clic en los propios elementos o a la derecha de los elementos del TreeView control. No se genera ningún evento para clics en otras partes del control. Además de los descritos más adelante, existen los eventos BeforeCheck, BeforeSelect, BeforeLabelEdit, AfterSelect, AfterCheck y AfterLabelEdit, que pueden interesarle si desea usar la validación con el control TreeView.
- Haga clic con el botón izquierdo: Click, MouseClick
- Haga clic con el botón derecho en : Click, MouseClick
- Haga doble clic con el botón izquierdo: Click, MouseClick; , DoubleClickMouseDoubleClick
- Haga doble clic con el botón derecho: Click, MouseClick; , DoubleClickMouseDoubleClick
Comportamiento de dibujo de controles de alternancia
Los controles de alternancia, como los controles derivados de la ButtonBase clase, tienen el siguiente comportamiento distintivo de pintura en combinación con los eventos de clic del mouse:
El usuario presiona el botón del mouse.
El control pinta cuando está presionado.
Se genera el MouseDown evento .
El usuario suelta el botón del mouse.
El control se dibuja en estado resaltado.
Se genera el Click evento .
Se genera el MouseClick evento .
Se genera el MouseUp evento .
Nota:
Si el usuario mueve el puntero fuera del control de alternancia mientras el botón del mouse está presionado (como mover el mouse fuera del Button control mientras está presionado), el control de alternancia se pinta en el estado elevado y solo se produce el evento MouseUp. Los eventos Click o MouseClick no se producirán en esta situación.
Consulte también
.NET Desktop feedback