Správa ukazatelů myši (model Windows Forms .NET)

Ukazatel myši, který se někdy označuje jako kurzor, je rastrový obrázek, který určuje bod fokusu na obrazovce pro uživatelský vstup myší. Toto téma obsahuje přehled ukazatele myši v model Windows Forms a popisuje některé způsoby, jak změnit a řídit ukazatel myši.

Důležité

Dokumentace k desktopové příručce pro .NET 7 a .NET 6 se právě připravuje.

Přístup k ukazateli myši

Ukazatel myši je reprezentován Cursor třídou a každý ControlControl.Cursor vlastnost, která určuje ukazatel pro daný ovládací prvek. Třída Cursor obsahuje vlastnosti, které popisují ukazatel, například vlastnosti Position a HotSpot metody, které mohou změnit vzhled ukazatele, například Show, Hidea DrawStretched metody.

Následující příklad skryje kurzor, když je kurzor nad tlačítkem:

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

Řízení ukazatele myši

Někdy můžete chtít omezit oblast, ve které lze použít ukazatel myši, nebo změnit umístění myši. Můžete získat nebo nastavit aktuální umístění myši pomocí Position vlastnosti Cursor. Kromě toho můžete omezit oblast, kterou ukazatel myši lze použít k nastavení Clip vlastnosti. Oblast klipartu je ve výchozím nastavení celá obrazovka.

Následující příklad umístí ukazatel myši mezi dvě tlačítka při kliknutí:

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

Změna ukazatele myši

Změna ukazatele myši je důležitým způsobem, jak uživateli poskytnout zpětnou vazbu. Ukazatel myši lze například upravit v obslužných rutinách MouseEnter a MouseLeave událostech, aby uživateli řekl, že výpočty probíhají a že se v ovládacím prvku omezuje interakce uživatele. Ukazatel myši se někdy změní z důvodu systémových událostí, například když je aplikace zapojena do operace přetažení.

Primární způsob, jak změnit ukazatel myši, je nastavením Control.Cursor nebo DefaultCursor vlastnosti ovládacího prvku na nový Cursor. Příklady změny ukazatele myši najdete v příkladu Cursor kódu ve třídě. Třída navíc Cursors zveřejňuje sadu Cursor objektů pro mnoho různých typů ukazatelů, například ukazatel, který se podobá ruce.

Následující příklad změní kurzor ukazatele myši pro tlačítko na ruku:

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

Pokud chcete zobrazit ukazatel čekání, který se podobá přesýpací hodině, použijte vlastnost Control třídy vždy, UseWaitCursor když je ukazatel myši na ovládacím prvku.

Viz také