Funcionamiento de la entrada del mouse (ratón) en los formularios Windows FormsHow Mouse Input Works in Windows Forms

Recibir y controlar entrada de mouse (ratón) es una parte importante de cada aplicación de Windows.Receiving and handling mouse input is an important part of every Windows application. Puede controlar los eventos del mouse para llevar a cabo una acción en su aplicación o usar la información de ubicación del mouse para realizar la prueba de posicionamiento u otras acciones.You can handle mouse events to perform an action in your application, or use mouse location information to perform hit testing or other actions. Además, puede cambiar la manera en que los controles de la aplicación controlan la entrada del mouse.In addition, you can change the way the controls in your application handle mouse input. En este tema se describe estos eventos del mouse en detalle y cómo obtener y cambiar la configuración del sistema para el mouse.This topic describes these mouse events in detail, and how to obtain and change system settings for the mouse. Para obtener más información acerca de los datos proporcionados con el mouse se producen los eventos y el orden en que el mouse, haga clic en eventos, vea eventos del Mouse en formularios Windows Forms.For more information about the data provided with the mouse events and the order in which the mouse click events are raised, see Mouse Events in Windows Forms.

La ubicación del mouse y las pruebas de posicionamientoMouse Location and Hit-Testing

Cuando el usuario mueve el mouse, el sistema operativo mueve el puntero del mouse.When the user moves the mouse, the operating system moves the mouse pointer. El puntero del mouse contiene un solo píxel, llamado a la zona activa, que el sistema operativo sigue y reconoce como la posición del puntero.The mouse pointer contains a single pixel, called the hot spot, which the operating system tracks and recognizes as the position of the pointer. Cuando el usuario mueve el mouse o presiona un botón del mouse, el Control que contiene el HotSpot genera el evento del mouse adecuado.When the user moves the mouse or presses a mouse button, the Control that contains the HotSpot raises the appropriate mouse event. Puede obtener la posición del mouse actual con el Location propiedad de la MouseEventArgs al controlar un evento de mouse (ratón) o mediante el Position propiedad de la Cursor clase.You can obtain the current mouse position with the Location property of the MouseEventArgs when handling a mouse event or by using the Position property of the Cursor class. Puede usar posteriormente información de ubicación del mouse para realizar la prueba de posicionamiento y, a continuación, realizar una acción según la ubicación del mouse.You can subsequently use mouse location information to perform hit-testing, and then perform an action based on the location of the mouse. Capacidad de prueba de posicionamiento se halla integrado en varios controles en formularios Windows Forms como el ListView, TreeView, MonthCalendar y DataGridView controles.Hit-testing capability is built in to several controls in Windows Forms such as the ListView, TreeView, MonthCalendar and DataGridView controls. Utiliza con el evento del mouse adecuado, MouseHover por ejemplo, la prueba de posicionamiento es muy útil para determinar si la aplicación debe realizar una acción específica.Used with the appropriate mouse event, MouseHover for example, hit-testing is very useful for determining when your application should perform a specific action.

Eventos del mouseMouse Events

La manera principal para responder a la entrada del mouse es controlar los eventos del mouse.The primary way to respond to mouse input is to handle mouse events. En la tabla siguiente muestra los eventos del mouse y describe cuándo se generan.The following table shows the mouse events and describes when they are raised.

Evento del mouseMouse Event DescripciónDescription
Click Este evento se produce cuando se suelta el botón del mouse, normalmente antes el MouseUp eventos.This event occurs when the mouse button is released, typically before the MouseUp event. El controlador de este evento recibe un argumento del tipo EventArgs.The handler for this event receives an argument of type EventArgs. Controle este evento cuando necesite determinar cuándo se produce un clic.Handle this event when you only need to determine when a click occurs.
MouseClick Este evento se produce cuando el usuario hace clic en el control con el mouse.This event occurs when the user clicks the control with the mouse. El controlador de este evento recibe un argumento del tipo MouseEventArgs.The handler for this event receives an argument of type MouseEventArgs. Controle este evento cuando necesite obtener información sobre el mouse cuando se produce un clic.Handle this event when you need to get information about the mouse when a click occurs.
DoubleClick Este evento se produce cuando se hace doble clic en el control.This event occurs when the control is double-clicked. El controlador de este evento recibe un argumento del tipo EventArgs.The handler for this event receives an argument of type EventArgs. Controle este evento cuando necesite determinar cuando se produce un doble clic.Handle this event when you only need to determine when a double-click occurs.
MouseDoubleClick Este evento se produce cuando el usuario hace doble clic en el control con el mouse.This event occurs when the user double-clicks the control with the mouse. El controlador de este evento recibe un argumento del tipo MouseEventArgs.The handler for this event receives an argument of type MouseEventArgs. Controle este evento cuando necesite obtener información sobre el mouse cuando se produce un doble clic.Handle this event when you need to get information about the mouse when a double-click occurs.
MouseDown Este evento se produce cuando el puntero del mouse está sobre el control y el usuario presiona un botón del mouse.This event occurs when the mouse pointer is over the control and the user presses a mouse button. El controlador de este evento recibe un argumento del tipo MouseEventArgs.The handler for this event receives an argument of type MouseEventArgs.
MouseEnter Este evento se produce cuando el puntero del mouse entra en el borde o área de cliente del control, según el tipo de control.This event occurs when the mouse pointer enters the border or client area of the control, depending on the type of control. El controlador de este evento recibe un argumento del tipo EventArgs.The handler for this event receives an argument of type EventArgs.
MouseHover Este evento se produce cuando el puntero del mouse se detenga y se sitúa sobre el control.This event occurs when the mouse pointer stops and rests over the control. El controlador de este evento recibe un argumento del tipo EventArgs.The handler for this event receives an argument of type EventArgs.
MouseLeave Este evento se produce cuando el puntero del mouse deja el borde o área de cliente del control, según el tipo del control.This event occurs when the mouse pointer leaves the border or client area of the control, depending on the type of the control. El controlador de este evento recibe un argumento del tipo EventArgs.The handler for this event receives an argument of type EventArgs.
MouseMove Este evento se produce cuando el puntero del mouse se mueve mientras se encuentra sobre un control.This event occurs when the mouse pointer moves while it is over a control. El controlador de este evento recibe un argumento del tipo MouseEventArgs.The handler for this event receives an argument of type MouseEventArgs.
MouseUp Este evento se produce cuando el puntero del mouse está sobre el control y el usuario suelta un botón del mouse.This event occurs when the mouse pointer is over the control and the user releases a mouse button. El controlador de este evento recibe un argumento del tipo MouseEventArgs.The handler for this event receives an argument of type MouseEventArgs.
MouseWheel Este evento se produce cuando el usuario gira la rueda del mouse mientras el control tiene el foco.This event occurs when the user rotates the mouse wheel while the control has focus. El controlador de este evento recibe un argumento del tipo MouseEventArgs.The handler for this event receives an argument of type MouseEventArgs. Puede usar el Delta propiedad de MouseEventArgs para determinar hasta qué punto se desplaza el mouse.You can use the Delta property of MouseEventArgs to determine how far the mouse has scrolled.

Cambiar la entrada del Mouse y detectar la configuración del sistemaChanging Mouse Input and Detecting System Settings

Puede detectar y cambiar la manera en que un control controla la entrada del mouse derivando del control y utilizando la GetStyle y SetStyle métodos.You can detect and change the way a control handles mouse input by deriving from the control and using the GetStyle and SetStyle methods. El SetStyle método toma una combinación bit a bit de ControlStyles valores para determinar si el control tendrán estándar, haga clic en o haga doble clic en el comportamiento o si el control controlará su propio procesamiento del mouse.The SetStyle method takes a bitwise combination of ControlStyles values to determine whether the control will have standard click or double-click behavior or if the control will handle its own mouse processing. Además, la SystemInformation clase incluye propiedades que describen las capacidades del mouse y especifican cómo interactúa el mouse con el sistema operativo.In addition, the SystemInformation class includes properties that describe the capabilities of the mouse and specify how the mouse interacts with the operating system. En la tabla siguiente se resume estas propiedades.The following table summarizes these properties.

PropertyProperty DescripciónDescription
DoubleClickSize Obtiene las dimensiones, en píxeles, del área en la que el usuario debe hacer clic dos veces para que el sistema operativo considere los dos clics como un doble clic.Gets the dimensions, in pixels, of the area in which the user must click twice for the operating system to consider the two clicks a double-click.
DoubleClickTime Obtiene el número máximo de milisegundos que pueden pasar entre un primer clic y un segundo clic para que el sistema operativo considere que la acción del mouse un doble clic.Gets the maximum number of milliseconds that can elapse between a first click and a second click for the operating system to consider the mouse action a double-click.
MouseButtons Obtiene el número de botones del mouse.Gets the number of buttons on the mouse.
MouseButtonsSwapped Obtiene un valor que indica si se intercambiaron las funciones de los botones del mouse.Gets a value indicating whether the functions of the left and right mouse buttons have been swapped.
MouseHoverSize Obtiene las dimensiones, en píxeles, del rectángulo en el que el puntero del mouse debe permanecer un tiempo de desplazamiento para que se genere un mensaje de desplazamiento.Gets the dimensions, in pixels, of the rectangle within which the mouse pointer has to stay for the mouse hover time before a mouse hover message is generated.
MouseHoverTime Obtiene el tiempo, en milisegundos, que el puntero del mouse tiene que permanecer en el rectángulo seleccionado mediante movimiento del mouse hasta que se genera un mensaje de movimiento del mouse.Gets the time, in milliseconds, that the mouse pointer has to stay in the hover rectangle before a mouse hover message is generated.
MousePresent Obtiene un valor que indica si se instaló un mouse.Gets a value indicating whether a mouse is installed.
MouseSpeed Obtiene un valor que indica la velocidad del mouse actual, de 1 a 20.Gets a value indicating the current mouse speed, from 1 to 20.
MouseWheelPresent Obtiene un valor que indica si se instaló la rueda del mouse.Gets a value indicating whether a mouse with a mouse wheel is installed.
MouseWheelScrollDelta Obtiene la cantidad del valor delta del incremento de rotación de la rueda de mouse único.Gets the amount of the delta value of the increment of a single mouse wheel rotation.
MouseWheelScrollLines Obtiene el número de líneas de desplazamiento al girar la rueda del mouse.Gets the number of lines to scroll when the mouse wheel is rotated.

Vea tambiénSee Also

Entradas mediante el mouse en una aplicación de Windows FormsMouse Input in a Windows Forms Application
Captura del mouse en Windows FormsMouse Capture in Windows Forms
Punteros del mouse en Windows FormsMouse Pointers in Windows Forms