Verwalten von Mauszeigern (Windows Forms .NET)

Beim Mauszeiger, der manchmal auch als Cursor bezeichnet wird, handelt es sich um eine Bitmap, die einen Fokuspunkt auf dem Bildschirm für Benutzereingabe mit der Maus angibt. In diesem Thema erhalten Sie eine Übersicht über den Mauszeiger in Windows Forms. Außerdem werden einige Möglichkeiten erläutert, um den Mauszeiger zu ändern und zu steuern.

Wichtig

Der Desktopleitfaden zu .NET 7 und .NET 6 ist in Bearbeitung.

Zugreifen auf den Mauszeiger

Der Mauszeiger wird von der Cursor-Klasse dargestellt. Jede Control-Klasse verfügt über eine Control.Cursor-Eigenschaft, die den Zeiger für das entsprechende Steuerelement angibt. Die Cursor-Klasse enthält Eigenschaften, die den Zeiger beschreiben, z. B. die Eigenschaften Position und HotSpot, sowie Methoden, die das Aussehen des Zeigers ändern können, z. B. die Methoden Show, Hide und DrawStretched.

Im folgenden Beispiel wird der Cursor ausgeblendet, wenn er sich über einer Schaltfläche befindet:

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

Steuern des Mauszeigers

Manchmal sollten Sie den Bereich begrenzen, in dem der Mauszeiger verwendet werden kann, oder die Position der Maus ändern. Sie können die aktuelle Position der Maus mithilfe der Position-Eigenschaft von Cursor abrufen oder festlegen. Zusätzlich können Sie den Bereich einschränken, in dem der Mauszeiger verwendet werden kann, indem Sie die Clip-Eigenschaft festlegen. Der Standardbereich, der eingeschränkt werden kann, ist die gesamte Anzeige.

Im folgenden Beispiel wird der Mauszeiger zwischen zwei Schaltflächen positioniert, wenn auf diese geklickt wird:

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

Ändern des Mauszeigers

Das Ändern des Mauszeigers ist eine wichtige Möglichkeit, dem Benutzer Feedback zu geben. Der Mauszeiger kann beispielsweise in den Handlern der Ereignisse MouseEnter und MouseLeave geändert werden, um den Benutzer darüber zu informieren, dass Berechnungen durchgeführt werden, und um die Benutzerinteraktion im Steuerelement einzuschränken. Manchmal wird der Mauszeiger aufgrund von Systemereignissen geändert, z. B. wenn Ihre Anwendung an einem Drag & Drop-Vorgang beteiligt ist.

Die Hauptmöglichkeit, den Mauszeiger zu ändern, besteht darin, die Eigenschaft Control.Cursor oder DefaultCursor eines Steuerelements auf eine neue Cursor-Klasse festzulegen. Beispiele zum Ändern des Mauszeigers finden Sie im Codebeispiel in der Cursor-Klasse. Zusätzlich macht die Cursors-Klasse mehrere Cursor-Objekte für verschiedene Zeigertypen verfügbar, z. B. ein Zeiger, der einer Hand ähnelt.

Im folgenden Beispiel wird der Cursor des Mauszeigers für eine Schaltfläche in eine Hand geändert:

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

Verwenden Sie die UseWaitCursor-Eigenschaft der Control-Klasse, damit der Wartezeiger angezeigt wird, der einer Sanduhr ähnelt, sobald sich der Mauszeiger auf dem Steuerelement befindet.

Siehe auch