Udostępnij za pośrednictwem


Zarządzanie wskaźnikami myszy (Windows Forms .NET)

Wskaźnik myszy, który jest czasami określany jako kursor, jest mapą bitową, która określa punkt koncentracji uwagi na ekranie dla danych wejściowych użytkownika za pomocą myszy. W tym temacie omówiono wskaźnik myszy w formularzach Systemu Windows i opisano niektóre sposoby modyfikowania i kontrolowania wskaźnika myszy.

Uzyskiwanie dostępu do wskaźnika myszy

Wskaźnik myszy jest reprezentowany przez klasę Cursor , a każda z nich Control ma właściwość określającą Control.Cursor wskaźnik dla tej kontrolki. Klasa Cursor zawiera właściwości opisujące wskaźnik, takie jak Position właściwości i HotSpot , oraz metody, które mogą modyfikować wygląd wskaźnika, na przykład Showmetody , Hidei DrawStretched .

Poniższy przykład ukrywa kursor, gdy kursor znajduje się na przycisku:

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

Sterowanie wskaźnikiem myszy

Czasami można ograniczyć obszar, w którym można użyć wskaźnika myszy lub zmienić położenie myszy. Możesz pobrać lub ustawić bieżącą lokalizację myszy przy użyciu Position właściwości Cursor. Ponadto można ograniczyć obszar, za pomocą którego można ustawić Clip wskaźnik myszy. Obszar klipu domyślnie jest całym ekranem.

Poniższy przykład umieszcza wskaźnik myszy między dwoma przyciskami po kliknięciu:

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

Zmienianie wskaźnika myszy

Zmiana wskaźnika myszy jest ważnym sposobem przekazywania opinii użytkownikowi. Na przykład wskaźnik myszy można zmodyfikować w programach obsługi zdarzeń MouseEnter i MouseLeave , aby poinformować użytkownika, że obliczenia występują i ograniczyć interakcję użytkownika w kontrolce. Czasami wskaźnik myszy zmieni się z powodu zdarzeń systemowych, takich jak gdy aplikacja jest zaangażowana w operację przeciągania i upuszczania.

Podstawowym sposobem zmiany wskaźnika myszy jest ustawienie Control.Cursor właściwości or DefaultCursor kontrolki na nową Cursor. Przykłady zmiany wskaźnika myszy można znaleźć w przykładzie Cursor kodu w klasie . Ponadto Cursors klasa uwidacznia zestaw Cursor obiektów dla wielu różnych typów wskaźników, takich jak wskaźnik przypominający rękę.

Poniższy przykład zmienia kursor wskaźnika myszy dla przycisku na rękę:

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

Aby wyświetlić wskaźnik oczekiwania, który przypomina klepsydry, za każdym razem, gdy wskaźnik myszy znajduje się w kontrolce, użyj UseWaitCursor właściwości Control klasy .

Zobacz też