管理鼠标指针(Windows 窗体 .NET)
鼠标指针(有时被称为光标)是一个位图,通过鼠标在屏幕上为用户指定一个输入焦点。 本主题概述了 Windows 窗体中的鼠标指针,并介绍了一些修改和控制鼠标指针的方法。
访问鼠标指针
鼠标指针由 Cursor 类表示,每个 Control 都具有一个 Control.Cursor 属性,该属性指定该控件的指针。 Cursor 类包含描述指针的属性(如 Position 和 HotSpot 属性)以及可以修改指针外观的方法(如 Show、Hide 和 DrawStretched 方法)。
在下面的示例中,会在光标悬停在按钮上时隐藏光标:
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
更改鼠标指针
更改鼠标指针是向用户提供反馈的重要方式。 例如,可以在 MouseEnter 和 MouseLeave 事件的处理程序中修改鼠标指针,以告知用户正在进行计算并限制控件中的用户交互。 有时,鼠标指针会因系统事件而发生变化,例如当应用程序涉及拖放操作时。
更改鼠标指针的主要方式是将控件的 Control.Cursor 或 DefaultCursor 属性设置为新的 Cursor。 有关更改鼠标指针的示例,请参阅 Cursor 类中的代码示例。 此外,Cursors 类公开了许多不同类型的指针(如手形指针)的一组 Cursor 对象。
下面的示例将按钮的鼠标指针的光标更改为手形形状:
button2.Cursor = System.Windows.Forms.Cursors.Hand;
Button2.Cursor = System.Windows.Forms.Cursors.Hand
若要在鼠标指针位于控件上方时显示等待指针(沙漏状),请使用 Control 类的 UseWaitCursor 属性。