Compartir a través de


Eventos del mouse (ratón) en formularios Windows Forms

Actualización: noviembre 2007

Cuando se controla la entrada del mouse, normalmente se desea conocer la ubicación del puntero del mouse y el estado de los botones del mismo. Este tema proporciona información acerca de cómo obtener información de los eventos del ratón y explica el orden en que se producen los eventos clic del mouse en los controles de formularios Windows Forms. Para obtener una lista y la descripción de todos los eventos del mouse, vea Funcionamiento de la entrada del mouse (ratón) en los formularios Windows Forms.

Información del mouse

Se envía un MouseEventArgs a los controladores de eventos del mouse relacionados con el clic y el seguimiento de los movimientos del mouse. MouseEventArgs proporciona información acerca del estado actual del mouse incluyendo la ubicación del puntero en coordenadas del cliente, qué botón del mouse se ha presionado y si se ha movido la rueda. Algunos eventos del mouse, como aquellos que simplemente notifican el hecho de que el puntero entre en lo límites de un control envían un EventArgs al controlador de eventos sin más información.

Si desea saber el estado actual de los botones del mouse o la ubicación del puntero pero no desea controlar un evento del mouse, puede utilizar las propiedades MouseButtons y MousePosition de la clase Control. MouseButtons devuelve información acerca de los botones del mouse que están presionados. MousePosition devuelve las coordenadas de la pantalla del puntero del mouse y es equivalente al valor devuelto por Position.

Conversión entre coordenadas del cliente y de pantalla

Puesto que parte de la información de la ubicación del mouse se proporciona en coordinadas del cliente y otra parte en coordenadas de la pantalla, puede que sea necesario convertir un punto de un sistema de coordenadas a otro. Puede hacer esto fácilmente utilizando los métodos PointToClient y PointToScreen disponibles en la clase Control.

Comportamiento estándar del evento clic

Si desea controlar los eventos clic del mouse en el orden adecuado, es necesario que sepa el orden en que se producen los eventos en los controles de formularios Windows Forms. Todos los controles de los formularios Windows Forms desencadenan los eventos en el mismo orden cuando se presiona y se suelta un botón del mouse (independientemente del botón que sea), salvo cuando se anotan para controles individuales. A continuación se muestra el orden de eventos provocado para un solo clic con el botón del mouse:

  1. Evento MouseDown.

  2. Evento Click.

  3. Evento MouseClick.

  4. Evento MouseUp.

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

  1. Evento MouseDown.

  2. Evento Click.

  3. Evento MouseClick.

  4. Evento MouseUp.

  5. Evento MouseDown.

  6. Evento DoubleClick. (Esto puede variar, dependiendo de si el control en cuestión tiene el bit de estilo StandardDoubleClick establecido en true. Para obtener más información sobre cómo establecer un bit ControlStyles, vea el método SetStyle.)

  7. Evento MouseDoubleClick.

  8. Evento MouseUp.

Para obtener un ejemplo de código que muestra el orden de los eventos clic del mouse, vea Cómo: Controlar eventos del usuario en controles de formularios Windows Forms.

Controles individuales

Los controles siguientes no se ajustan al comportamiento estándar de los eventos clic:

Comportamiento de dibujo de controles de alternancia

Los controles de comando de alternancia, como los controles que derivan de la clase ButtonBase, tienen el siguiente comportamiento de dibujo distintivo en combinación con eventos clic del mouse:

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

  2. El control se dibuja en el estado presionado.

  3. Se provoca el evento MouseDown.

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

  5. El control se dibuja con relieve.

  6. Se provoca el evento Click.

  7. Se provoca el evento MouseClick.

  8. Se provoca el evento MouseUp.

    Nota:

    Si el usuario mueve el puntero fuera del control de alternancia mientras el botón del mouse está presionado (como al retirar el mouse del control Button mientras está presionado), el control de alternancia se dibujará con relieve y sólo se produce el evento MouseUp. Los eventos Click o MouseClick no se producirán en esta situación.

Vea también

Otros recursos

Entradas mediante el mouse (ratón) en una aplicación de Windows Forms