管理鼠标指针

鼠标 指针(有时称为光标)是一个位图,用于指定屏幕上的焦点,以便使用鼠标进行用户输入。 本文概述了 Windows 窗体中的鼠标指针,并介绍了修改和控制鼠标指针的一些方法。

访问鼠标指针

鼠标指针由 Cursor 类表示,每个 Control 都有一个 Control.Cursor 属性,该属性指定该控件的指针。 Cursor 类包含描述指针的属性,例如 PositionHotSpot 属性,以及可以修改指针外观的方法,例如 ShowHideDrawStretched 方法。

以下示例在光标位于按钮上时隐藏游标:

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

控制鼠标指针

有时,你可能想要更改鼠标的位置或将鼠标指针限制为特定区域。 可以使用该属性获取或设置鼠标 Cursor.Position 的当前位置。 此外,还可以通过设置 Clip 属性来限制鼠标指针可用的区域。 默认情况下,剪辑区域是整个屏幕。

以下示例在单击鼠标指针时将鼠标指针放在两个按钮之间:

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

更改鼠标指针

更改鼠标指针是向用户提供反馈的重要方式。 例如,可以在 MouseEnterMouseLeave 事件的处理程序中修改鼠标指针,以告知用户计算发生并限制控件中的用户交互。 有时,鼠标指针因系统事件而更改,例如当应用程序参与拖放作时。

更改鼠标指针的主要方法是将控件的 Control.CursorDefaultCursor 属性设置为新的 Cursor。 有关更改鼠标指针的示例,请参阅 Cursor 类中的代码示例。 此外,Cursors 类为许多不同类型的指针(例如类似于手的指针)公开一组 Cursor 对象。

下面的示例将按钮的鼠标指针的光标更改为手形形状:

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

若要在鼠标指针位于控件上方时显示等待指针(沙漏状),请使用 UseWaitCursor 类的 Control 属性。

另请参阅