Поделиться через


Управление указателями мыши

Указатель мыши , который иногда называется курсором, представляет собой растровое изображение, указывающее точку фокуса на экране для ввода пользователем с помощью мыши. В этой статье представлен обзор указателя мыши в Windows Forms и описаны некоторые способы изменения и управления указателем мыши.

Доступ к указателю мыши

Указатель мыши представлен классом 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

Чтобы отобразить указатель ожидания, который напоминает часовые часы, когда указатель мыши находится на элементе управления, используйте свойство UseWaitCursor класса Control.

См. также