Clase para el Funcionamiento Del Mouse
Eventos del mouse (ratón) en formularios Windows Forms
.NET Framework 4.5
Otras versiones
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
mouse 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
coordenadasdelcliente,québotóndelmousesehapresionadoysise ha movidolarueda.
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 paraun 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:
 Button , CheckBox, ComboBox y RadioButton.
Nota
Parael controlComboBox,elcomportamientodeeventosdescritoacontinuación
se produce si el usuario hace clic en el campo de edición, en el botón o en un
elemento de la lista.
o Clic con el botón primario: Click, MouseClick
o Clic con el botón secundario: no se producen eventos de clic
o Clic con el botón primario: Click, MouseClick; Click, MouseClick
o Doble clic con el botón secundario: no se producen eventos clic
 TextBox , RichTextBox, ListBox, MaskedTextBox y CheckedListBox
Nota
El comportamiento de eventos descrito a continuación se produce cuando el
usuario hace clic en cualquier parte dentro de estos controles.
o Clic con el botón primario: Click, MouseClick
o Clic con el botón secundario: no se producen eventos de clic
o Clic con el botón primario: Click, MouseClick; DoubleClick,
MouseDoubleClick
o Doble clic con el botón secundario: no se producen eventos clic
 control ListView
Nota
El comportamiento de eventos descrito a continuación sólo aparece cuando el
usuario hace clic en los elementos del control ListView. No se produce ningún
evento cuando se hace clic en otro lugar del control. Además de los eventos
descritos a continuación, están los eventos BeforeLabelEdit y AfterLabelEdit, que
podrían tener interés para los programadores que deseen utilizar la validación
con el control ListView.
o Clic con el botón primario: Click, MouseClick
o Clic con el botón secundario: Click, MouseClick
o Clic con el botón primario: Click, MouseClick; DoubleClick,
MouseDoubleClick
o Clic con el botón secundario: Click, MouseClick; DoubleClick,
MouseDoubleClick
 control TreeView
Nota
El comportamientode eventos descritoa continuación sólo se produce cuandoel
usuario hace clic en los propios elementos o a la derecha de éstos en el control
TreeView. No se produce ningún evento cuando se hace clic en otro lugar del
control. Además de los eventos descritos a continuación, están los eventos
BeforeCheck, BeforeSelect, BeforeLabelEdit, AfterSelect, AfterCheck y
AfterLabelEdit, que podría interesarle si desea utilizar la validación con el control
TreeView.
o Clic con el botón primario: Click, MouseClick
o Clic con el botón secundario: Click, MouseClick
o Clic con el botón primario: Click, MouseClick; DoubleClick,
MouseDoubleClick
o Clic con el botón secundario: Click, MouseClick; DoubleClick,
MouseDoubleClick
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 comportamientode 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.

Clase para el funcionamiento del mouse

  • 1.
    Clase para elFuncionamiento Del Mouse Eventos del mouse (ratón) en formularios Windows Forms .NET Framework 4.5 Otras versiones 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 mouse 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 coordenadasdelcliente,québotóndelmousesehapresionadoysise ha movidolarueda. 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
  • 2.
    Si desea controlarlos 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 paraun 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:  Button , CheckBox, ComboBox y RadioButton. Nota
  • 3.
    Parael controlComboBox,elcomportamientodeeventosdescritoacontinuación se producesi el usuario hace clic en el campo de edición, en el botón o en un elemento de la lista. o Clic con el botón primario: Click, MouseClick o Clic con el botón secundario: no se producen eventos de clic o Clic con el botón primario: Click, MouseClick; Click, MouseClick o Doble clic con el botón secundario: no se producen eventos clic  TextBox , RichTextBox, ListBox, MaskedTextBox y CheckedListBox Nota El comportamiento de eventos descrito a continuación se produce cuando el usuario hace clic en cualquier parte dentro de estos controles. o Clic con el botón primario: Click, MouseClick o Clic con el botón secundario: no se producen eventos de clic o Clic con el botón primario: Click, MouseClick; DoubleClick, MouseDoubleClick o Doble clic con el botón secundario: no se producen eventos clic  control ListView Nota El comportamiento de eventos descrito a continuación sólo aparece cuando el usuario hace clic en los elementos del control ListView. No se produce ningún evento cuando se hace clic en otro lugar del control. Además de los eventos descritos a continuación, están los eventos BeforeLabelEdit y AfterLabelEdit, que podrían tener interés para los programadores que deseen utilizar la validación con el control ListView. o Clic con el botón primario: Click, MouseClick o Clic con el botón secundario: Click, MouseClick o Clic con el botón primario: Click, MouseClick; DoubleClick, MouseDoubleClick o Clic con el botón secundario: Click, MouseClick; DoubleClick, MouseDoubleClick
  • 4.
     control TreeView Nota Elcomportamientode eventos descritoa continuación sólo se produce cuandoel usuario hace clic en los propios elementos o a la derecha de éstos en el control TreeView. No se produce ningún evento cuando se hace clic en otro lugar del control. Además de los eventos descritos a continuación, están los eventos BeforeCheck, BeforeSelect, BeforeLabelEdit, AfterSelect, AfterCheck y AfterLabelEdit, que podría interesarle si desea utilizar la validación con el control TreeView. o Clic con el botón primario: Click, MouseClick o Clic con el botón secundario: Click, MouseClick o Clic con el botón primario: Click, MouseClick; DoubleClick, MouseDoubleClick o Clic con el botón secundario: Click, MouseClick; DoubleClick, MouseDoubleClick 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 comportamientode 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
  • 5.
    produce el eventoMouseUp. Los eventos Click o MouseClick no se producirán en esta situación.