Verwenden von Mausereignissen (Windows Forms .NET)

Die meisten Windows Forms-Programme verarbeiten Mauseingaben, indem sie Mausereignisse verarbeiten. Dieser Artikel enthält eine Übersicht über die Mausereignisse, einschließlich Details dazu, wann jedes Ereignis verwendet wird sowie zu den Daten, die für jedes Ereignis übergeben werden. Weitere Informationen zu Ereignissen im Allgemeinen finden Sie unter Übersicht zu Ereignissen (Windows Forms .NET).

Wichtig

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

Mausereignisse

Die Hauptmöglichkeit, auf Mauseingaben zu reagieren, ist die Verarbeitung von Mausereignissen. In der folgenden Tabelle finden Sie Mausereignisse sowie eine Erklärung dazu, wann ein jeweiliges Ereignis auftritt.

Mausereignis BESCHREIBUNG
Click Dieses Ereignis tritt auf, wenn die Maustaste losgelassen wird, in der Regel vor dem MouseUp-Ereignis. Der Handler für dieses Ereignis empfängt ein Argument des Typs EventArgs. Verarbeiten Sie dieses Ereignis, wenn Sie nur bestimmen müssen, wann ein Klick auftritt.
MouseClick Dieses Ereignis tritt ein, wenn der Benutzer mit der Maus auf das Steuerelement klickt. Der Handler für dieses Ereignis empfängt ein Argument des Typs MouseEventArgs. Verarbeiten Sie dieses Ereignis, wenn Sie Informationen zur Maus erhalten möchten, wenn ein Klick auftritt.
DoubleClick Dieses Ereignis tritt beim Doppelklicken auf das Steuerelement ein. Der Handler für dieses Ereignis empfängt ein Argument des Typs EventArgs. Verarbeiten Sie dieses Ereignis, wenn Sie nur bestimmen müssen, wann ein Doppelklick auftritt.
MouseDoubleClick Dieses Ereignis tritt ein, wenn der Benutzer mit der Maus auf das Steuerelement doppelklickt. Der Handler für dieses Ereignis empfängt ein Argument des Typs MouseEventArgs. Verarbeiten Sie dieses Ereignis, wenn Sie Informationen zur Maus erhalten möchten, wenn ein Doppelklick auftritt.
MouseDown Dieser Ereignis tritt ein, wenn sich der Mauszeiger über dem Steuerelement befindet und der Benutzer eine Maustaste drückt. Der Handler für dieses Ereignis empfängt ein Argument des Typs MouseEventArgs.
MouseEnter Dieses Ereignis tritt je nach Art des Steuerelements auf, wenn der Mauszeiger die Grenze oder den Clientbereich des Steuerelements überschreitet. Der Handler für dieses Ereignis empfängt ein Argument des Typs EventArgs.
MouseHover Dieses Ereignis tritt auf, wenn der Mauszeiger angehalten wird und über dem Steuerelement verbleibt. Der Handler für dieses Ereignis empfängt ein Argument des Typs EventArgs.
MouseLeave Dieses Ereignis tritt je nach Typ des Steuerelements auf, wenn der Mauszeiger die Grenzen oder den Clientbereich eines Steuerelements verlässt. Der Handler für dieses Ereignis empfängt ein Argument des Typs EventArgs.
MouseMove Dieses Ereignis tritt auf, wenn der Mauszeiger bewegt wird, während er sich über einem Steuerelement befindet. Der Handler für dieses Ereignis empfängt ein Argument des Typs MouseEventArgs.
MouseUp Dieses Ereignis tritt ein, wenn sich der Mauszeiger über dem Steuerelement befindet und der Benutzer eine Maustaste loslässt. Der Handler für dieses Ereignis empfängt ein Argument des Typs MouseEventArgs.
MouseWheel Dieses Ereignis tritt auf, wenn der Benutzer das Mausrad dreht, während der Fokus auf dem Steuerelement liegt. Der Handler für dieses Ereignis empfängt ein Argument des Typs MouseEventArgs. Sie können die Delta-Eigenschaft von MouseEventArgs verwenden, um zu bestimmen, wie weit die Maus gescrollt wurde.

Mausinformationen

Ein MouseEventArgs wird an Handler von Mausereignissen gesendet, die beim Drücken einer Maustaste und Verfolgen von Mausbewegungen ausgelöst werden. MouseEventArgs enthält Informationen zum aktuellen Zustand der Maus, z. B. die Position des Mauszeigers in Clientkoordinaten, welche Maustasten gedrückt werden und ob das Mausrad bewegt wurde. Zahlreiche Mausereignisse, beispielsweise Ereignisse, die ausgelöst werden, wenn der Mauszeiger die Grenzen eines Steuerelements überschritten oder verlassen hat, senden eine EventArgs-Klasse ohne weitere Informationen an den Ereignishandler.

Wenn Sie den aktuellen Zustand der Maustasten oder die Position des Mauszeigers erfahren möchten, ohne ein Mausereignis zu behandeln, können Sie auch die MouseButtons-Eigenschaft und die MousePosition-Eigenschaft der Control-Klasse verwenden. MouseButtons gibt Informationen darüber zurück, welche Maustasten aktuell gedrückt werden. MousePosition gibt die Bildschirmkoordinaten des Mauszeigers zurück, was dem von Position zurückgegebenen Wert entspricht.

Konvertieren zwischen Bildschirm- und Clientkoordinaten

Da einige Mauspositionsinformationen in Clientkoordinaten und einige in Bildschirmkoordinaten vorhanden sind, müssen Sie möglicherweise einen Punkt aus einem Koordinatensystem in das andere Koordinatensystem konvertieren. Eine einfache Möglichkeit hierzu bieten die PointToClient-Methode und die PointToScreen-Methode der Control-Klasse.

Standardverhalten bei Mausklickereignissen

Wenn Sie Mausklickereignisse in der richtigen Reihenfolge behandeln möchten, müssen Sie die Reihenfolge kennen, in der Mausklickereignisse in Windows Forms-Steuerelementen ausgelöst werden. Wenn eine unterstützte Maustaste gedrückt und wieder losgelassen wird, lösen alle Windows Forms-Steuerelemente Mausklickereignisse in derselben Reihenfolge aus. Ausnahmen für einzelne Steuerelemente sind in der folgenden Liste aufgeführt. In der folgenden Liste ist die Reihenfolge der Ereignisse aufgeführt, die bei einem einzelnen Mausklick ausgelöst werden:

  1. MouseDown -Ereignis.
  2. Click -Ereignis.
  3. MouseClick -Ereignis.
  4. MouseUp -Ereignis.

In der folgenden Liste ist die Reihenfolge der Ereignisse aufgeführt, die bei einem Doppelklick mit der Maus ausgelöst werden:

  1. MouseDown -Ereignis.

  2. Click -Ereignis.

  3. MouseClick -Ereignis.

  4. MouseUp -Ereignis.

  5. MouseDown -Ereignis.

  6. DoubleClick -Ereignis.

    Dies kann abhängig davon variieren, ob für das betreffende Steuerelement das StandardDoubleClick-Stilbit auf true festgelegt ist. Weitere Informationen zum Festlegen eines ControlStyles-Bits finden Sie unter der SetStyle-Methode.

  7. MouseDoubleClick -Ereignis.

  8. MouseUp -Ereignis.

Einzelne Steuerelemente

Die folgenden Steuerelemente weisen nicht das Standardverhalten bei Mausklickereignissen auf:

Zeichnungsverhalten umschaltbarer Steuerelemente

Umschaltbare Steuerelemente, wie die Steuerelemente, die von der ButtonBase-Klasse abgeleitet werden, weisen bei Mausklickereignissen das folgende Zeichnungsverhalten auf:

  1. Der Benutzer drückt die Maustaste.

  2. Das Steuerelement zeichnet im gedrückten Zustand.

  3. Das MouseDown-Ereignis wird ausgelöst.

  4. Der Benutzer lässt die Maustaste los.

  5. Das Steuerelement zeichnet im erhöhten Zustand.

  6. Das Click-Ereignis wird ausgelöst.

  7. Das MouseClick-Ereignis wird ausgelöst.

  8. Das MouseUp-Ereignis wird ausgelöst.

    Hinweis

    Wenn der Benutzer den Mauszeiger bei gedrückter Maustaste aus dem umschaltbaren Steuerelement bewegt (z. B. wenn er die Maus bei gedrückter Maustaste vom Button-Steuerelement weg bewegt), zeichnet das umschaltbare Steuerelement im erhöhten Zustand, und es tritt nur das MouseUp-Ereignis auf. Das Click-Ereignis oder das MouseClick-Ereignis tritt in dieser Situation nicht auf.

Siehe auch