Mausereignisse in Windows Forms
Aktualisiert: November 2007
Wenn Sie Mauseingaben behandeln, müssen Sie für gewöhnlich die Position des Mauszeigers und den Zustand der Maustasten kennen. In diesem Thema wird erläutert, wie Sie diese Informationen von Mausereignissen abrufen und in welcher Reihenfolge Mausklickereignisse in Windows Forms-Steuerelementen ausgelöst werden. Eine Liste und Beschreibung aller Mausereignisse finden Sie unter Funktionsweise von Mauseingaben in Windows Forms. Weitere Informationen finden Sie unter Übersicht über Ereignisse (Windows Forms) und Übersicht über Ereignishandler (Windows Forms) und Übersicht über Ereignishandler (Windows Forms) und Übersicht über Ereignisse (Windows Forms) und Übersicht über Ereignishandler (Windows Forms) und Übersicht über Ereignisse (Windows Forms) und Übersicht über Ereignishandler (Windows Forms) und Übersicht über Ereignisse (Windows Forms).
Mausinformationen
Ein MouseEventArgs wird an Handler von Mausereignissen gesendet, die beim Drücken einer Maustaste und Verfolgen von Mausbewegungen ausgelöst werden. MouseEventArgs stellt Informationen darüber bereit, wie der aktuelle Zustand der Maus ist, z. B. die Position des Mauszeigers in Clientkoordinaten, welche Maustasten gedrückt werden und ob das Mausrad bewegt wurde. Zahlreiche Mausereignisse, wie diejenigen, die lediglich darüber benachrichtigen, dass der Mauszeiger die Grenzen eines Steuerelements überschritten hat, senden ein EventArgs ohne weitere Informationen an den Ereignishandler.
Wenn Sie den aktuellen Zustand der Maustasten oder die Position des Mauszeigers wissen 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 derzeit 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 vorliegen, müssen Sie ggf. einen Punkt aus einem Koordinatensystem in ein anderes 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 wissen, in welcher Reihenfolge Mausklickereignisse in Windows Forms-Steuerelementen ausgelöst werden. Wenn eine Maustaste gedrückt und wieder losgelassen wird (unabhängig davon, um welche Maustaste es sich handelt), lösen alle Windows Forms-Steuerelemente Mausklickereignisse in derselben Reihenfolge aus. Ausnahmen für bestimmte Steuerelemente werden in der folgenden Liste angegeben. In dieser Liste werden die Ereignisse in der Reihenfolge genannt, in der sie bei einem Mausklick ausgelöst werden:
MouseDown-Ereignis.
Click-Ereignis.
MouseClick-Ereignis.
MouseUp-Ereignis.
Im Folgenden werden die Ereignisse in der Reihenfolge genannt, in der sie bei einem Doppelklick mit der Maustaste ausgelöst werden:
MouseDown-Ereignis.
Click-Ereignis.
MouseClick-Ereignis.
MouseUp-Ereignis.
MouseDown-Ereignis.
DoubleClick-Ereignis. (Abhängig davon, ob für das betreffende Steuerelement das StandardDoubleClick-Stilbit auf true festgelegt ist, kann dies variieren. Weitere Informationen über das Festlegen eines ControlStyles-Bits finden Sie unter der SetStyle-Methode.)
MouseDoubleClick-Ereignis.
MouseUp-Ereignis.
Ein Codebeispiel, das die Reihenfolge der Mausklickereignisse zeigt, finden Sie unter Gewusst wie: Behandeln von Benutzereingabeereignissen in Windows Forms-Steuerelementen.
Einzelne Steuerelemente
Folgende Steuerelemente folgen nicht dem Standardverhalten bei Mausklickereignissen:
Button-, CheckBox-, ComboBox- und RadioButton-Steuerelemente
Hinweis: Für das ComboBox-Steuerelement tritt das im Folgenden beschriebene Verhalten auf, wenn der Benutzer auf das Bearbeitungsfeld, die Schaltfläche oder ein Element in der Liste klickt.
Mausklick mit der linken Taste: Click, MouseClick
Mausklick mit der rechten Taste: Es werden keine Click-Ereignisse ausgelöst.
Doppelklick mit der linken Taste: Click, MouseClick; Click, MouseClick
Doppelklick mit der rechten Taste: Es werden keine Click-Ereignisse ausgelöst.
TextBox-, RichTextBox-, ListBox-, MaskedTextBox- und CheckedListBox-Steuerelemente
Hinweis: Das im Folgenden beschriebene Ereignisverhalten tritt auf, wenn der Benutzer innerhalb dieser Steuerelemente auf eine beliebige Stelle klickt.
Mausklick mit der linken Taste: Click, MouseClick
Mausklick mit der rechten Taste: Es werden keine Click-Ereignisse ausgelöst.
Doppelklick mit der linken Taste: Click, MouseClick, DoubleClick, MouseDoubleClick
Doppelklick mit der rechten Taste: Es werden keine Click-Ereignisse ausgelöst.
ListView-Steuerelement
Hinweis: Das im Folgenden beschriebene Ereignisverhalten tritt nur auf, wenn der Benutzer auf die Elemente im ListView-Steuerelement klickt. Wenn an anderer Stelle auf das Steuerelement geklickt wird, werden keine Ereignisse ausgelöst. Neben den im Folgenden beschriebenen Ereignissen können das BeforeLabelEdit-Ereignis und das AfterLabelEdit-Ereignis für Sie von Interesse sein, wenn Sie eine Validierung mit dem ListView-Steuerelement durchführen möchten.
Mausklick mit der linken Taste: Click, MouseClick
Mausklick mit der rechten Taste: Click, MouseClick
Doppelklick mit der linken Taste: Click, MouseClick; DoubleClick, MouseDoubleClick
Doppelklick mit der rechten Taste: Click, MouseClick; DoubleClick, MouseDoubleClick
TreeView-Steuerelement
Hinweis: Das im Folgenden beschriebene Verhalten tritt nur dann auf, wenn der Benutzer im TreeView-Steuerelement auf die Elemente selbst oder rechts neben sie klickt. Wenn an anderer Stelle auf das Steuerelement geklickt wird, werden keine Ereignisse ausgelöst. Neben den im Folgenden beschriebenen Ereignissen können die Ereignisse BeforeCheck, BeforeSelect, BeforeLabelEdit, AfterSelect, AfterCheck und AfterLabelEdit für Sie von Interesse sein, wenn Sie eine Validierung mit dem TreeView-Steuerelement durchführen möchten.
Mausklick mit der linken Taste: Click, MouseClick
Mausklick mit der rechten Taste: Click, MouseClick
Doppelklick mit der linken Taste: Click, MouseClick; DoubleClick, MouseDoubleClick
Doppelklick mit der rechten Taste: Click, MouseClick; DoubleClick, MouseDoubleClick
Zeichnungsverhalten umschaltbarer Steuerelemente
Umschaltbare Steuerelemente, wie die Steuerelemente, die sich von der ButtonBase-Klasse ableiten, weisen bei Mausklickereignissen folgendes Zeichnungsverhalten auf:
Der Benutzer drückt die Maustaste.
Das Steuerelement wird im gedrückten Zustand gezeichnet.
Das MouseDown-Ereignis wird ausgelöst.
Der Benutzer lässt die Maustaste los.
Das Steuerelement wird im freigegebenen Zustand gezeichnet.
Das Click-Ereignis wird ausgelöst.
Das MouseClick-Ereignis wird ausgelöst.
Das MouseUp-Ereignis wird ausgelöst.
Hinweis: Wenn der Mauszeiger bei gedrückter Maustaste aus dem umschaltbaren Steuerelement bewegt wird (z. B. wenn die Maus vom Button-Steuerelement weg bewegt wird, während die Maustaste gedrückt ist), wird das umschaltbare Steuerelement im freigegebenen Zustand gezeichnet, und es tritt nur das MouseUp-Ereignis auf. Das Click-Ereignis oder das MouseClick-Ereignis treten in dieser Situation nicht auf.