Compartir a través de


Uso de eventos del mouse

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:

  1. MouseDown evento.
  2. Click evento.
  3. MouseClick evento.
  4. MouseUp evento.

A continuación se muestra el orden de los eventos generados para un doble clic con el botón del mouse:

  1. MouseDown evento.

  2. Click evento.

  3. MouseClick evento.

  4. MouseUp evento.

  5. MouseDown evento.

  6. 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 .

  7. MouseDoubleClick evento.

  8. MouseUp evento.

Controles individuales

Los siguientes controles no se ajustan al comportamiento estándar del evento de clic del mouse:

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:

  1. El usuario presiona el botón del mouse.

  2. El control pinta cuando está presionado.

  3. Se genera el MouseDown evento .

  4. El usuario suelta el botón del mouse.

  5. El control se dibuja en estado resaltado.

  6. Se genera el Click evento .

  7. Se genera el MouseClick evento .

  8. 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