Administración de punteros del mouse (Windows Forms para .NET)

El puntero del mouse, que a veces se denomina cursor, es un mapa de bits que especifica un punto de enfoque en la pantalla para la entrada de usuario con el mouse. En este tema se ofrece información general sobre el puntero del mouse en Windows Forms y se describen algunas de las formas de modificar y controlar el puntero del mouse.

Acceso al puntero del mouse

El puntero del mouse se representa mediante la clase Cursor, y cada Control tiene una propiedad Control.Cursor que especifica el puntero para ese control. La clase Cursor contiene propiedades que describen el puntero, como las propiedades Position y HotSpot, y métodos que pueden modificar la apariencia del puntero, como los métodos Show, Hide y DrawStretched.

En el ejemplo siguiente se oculta el cursor cuando el cursor está encima de un botón:

private void button1_MouseEnter(object sender, EventArgs e) =>
    Cursor.Hide();

private void button1_MouseLeave(object sender, EventArgs e) =>
    Cursor.Show();

Control del puntero del mouse

Es posible que a veces quiera limitar el área en la que se puede usar el puntero del mouse o cambiar la posición del mouse. Puede obtener o establecer la ubicación actual del mouse mediante la propiedad Position de Cursor. Además, puede limitar el área en la que se puede usar el puntero del mouse estableciendo la propiedad Clip. De forma predeterminada, el área de recorte es toda la pantalla.

En el ejemplo siguiente se coloca el puntero del mouse entre dos botones cuando se hace clic en ellos:

private void button1_Click(object sender, EventArgs e) =>
    Cursor.Position = PointToScreen(button2.Location);

private void button2_Click(object sender, EventArgs e) =>
    Cursor.Position = PointToScreen(button1.Location);

Cambio del puntero del mouse

Cambiar el puntero del mouse es una forma importante de proporcionar comentarios al usuario. Por ejemplo, el puntero del mouse se puede modificar en los controladores de los eventos MouseEnter y MouseLeave para indicar al usuario que se están produciendo cálculos y limitar la interacción del usuario en el control. A veces, el puntero del mouse cambiará debido a eventos del sistema, como cuando la aplicación está implicada en una operación de arrastrar y colocar.

La forma principal de cambiar el puntero del mouse es establecer la propiedad Control.Cursor o DefaultCursor de un control en una nueva Cursor. Para ver ejemplos de cambio del puntero del mouse, consulte el ejemplo de código de la clase Cursor. Además, la clase Cursors expone un conjunto de objetos Cursor para muchos tipos distintos de punteros, como uno que se parece a una mano.

En el ejemplo siguiente se cambia el cursor del puntero del mouse para un botón a una mano:

button2.Cursor = System.Windows.Forms.Cursors.Hand;

Para mostrar el puntero de espera, que es similar a un reloj de arena, siempre que el puntero del mouse esté en el control, use la propiedad UseWaitCursor de la clase Control.

Vea también