Compartir a través de


Administrar punteros del mouse

El puntero del mouse, que a veces se conoce como cursor, es un mapa de bits que especifica un punto de enfoque en la pantalla para la entrada del usuario con el mouse. En este artículo se proporciona 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 ratón se representa mediante la Cursor clase y cada Control tiene una Control.Cursor propiedad que especifica el puntero para ese control. La Cursor clase contiene propiedades que describen el puntero, como las Position propiedades y HotSpot , y los métodos que pueden modificar la apariencia del puntero, como los Showmétodos , Hidey DrawStretched .

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

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

private void button1_MouseLeave(object sender, EventArgs e) =>
    Cursor.Show();
Private Sub Button1_MouseEnter(sender As Object, e As EventArgs) Handles Button1.MouseEnter
    Cursor.Hide()
End Sub

Private Sub Button1_MouseLeave(sender As Object, e As EventArgs) Handles Button1.MouseLeave
    Cursor.Show()
End Sub

Control del puntero del mouse

A veces es posible que desee cambiar la posición del mouse o restringir el puntero del mouse a un área específica. Puede obtener o establecer la ubicación actual del mouse mediante la Cursor.Position propiedad . Además, puede limitar el área disponible para el puntero del mouse estableciendo la Clip propiedad . El área de recorte, de forma predeterminada, 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);
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    PointToScreen(Button2.Location)
End Sub

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    PointToScreen(Button1.Location)
End Sub

Cambio del puntero del mouse

Cambiar el puntero del mouse es una manera importante de proporcionar comentarios al usuario. Por ejemplo, el puntero del mouse se puede modificar en los controladores de los MouseEnter eventos 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 cambia debido a eventos del sistema, como cuando la aplicación participa en una operación de arrastrar y colocar.

La forma principal de cambiar el puntero del mouse es estableciendo Control.Cursor o la propiedad DefaultCursor de un control en un nuevo Cursor. Para obtener ejemplos de cómo cambiar el puntero del mouse, vea el ejemplo de código en la Cursor clase . Además, la Cursors clase expone un conjunto de Cursor objetos para muchos tipos diferentes de punteros, como un puntero similar 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;
Button2.Cursor = System.Windows.Forms.Cursors.Hand

Para mostrar el puntero de espera, que se parece a un reloj de arena, siempre que el cursor esté en el control, use la propiedad UseWaitCursor de la clase Control.

Consulte también