Funktionsweise von Mauseingaben in Windows Forms
Das Empfangen und Verarbeiten von Mauseingaben ist ein wichtiger Bestandteil jeder Windows-Anwendung. Sie können Mausereignisse verarbeiten, um eine Aktion in Ihrer Anwendung auszuführen, oder mithilfe von Informationen zur Mausposition Treffertests oder andere Aktionen ausführen. Außerdem haben Sie die Möglichkeit, zu ändern, wie die Steuerelemente in Ihrer Anwendung Mauseingaben verarbeiten. In diesem Thema werden diese Mausereignisse ausführlich beschrieben. Zudem wird erläutert, wie Sie die Systemeinstellungen für die Maus abrufen und ändern. Weitere Informationen zu den Daten, die mit den Mausereignissen bereitgestellt werden, und die Reihenfolge, in der die Mausklickereignisse ausgelöst werden, finden Sie unter Mausereignisse in Windows Forms.
Mausposition und Treffertests
Wenn der Benutzer die Maus bewegt, verschiebt das Betriebssystem den Mauszeiger. Der Mauszeiger enthält ein einzelnes Pixel, den Hotspot, das vom Betriebssystem nachverfolgt und als Position des Zeigers erkannt wird. Wenn der Benutzer die Maus bewegt oder eine Maustaste drückt, löst das Steuerelement (Control), das den Hotspot (HotSpot-Eigenschaft) enthält, das entsprechende Mausereignis aus. Sie können die aktuelle Mausposition mit der Eigenschaft Location der Klasse MouseEventArgs abrufen, wenn ein Mausereignis verarbeitet wird, oder indem Sie die Eigenschaft Position der Klasse Cursor verwenden. Anschließend können Sie mithilfe der Mauspositionsinformationen Treffertests durchführen und eine Aktion auf Basis der Mausposition ausführen. Die Treffertestfunktion ist in Windows Forms in mehrere Steuerelemente integriert, z. B. in die Steuerelemente ListView, TreeView, MonthCalendar und DataGridView. In Kombination mit dem richtigen Mausereignis, z. B. MouseHover, sind Treffertest sehr nützlich, um zu bestimmen, wann die Anwendung eine bestimmte Aktion durchführen soll.
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 ausgelöst wird.
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. |
Ändern der Mauseingabe und Erkennen von System-Einstellungen
Sie können die Art, wie ein Steuerelement Mauseingaben verarbeitet, erkennen und ändern, indem Sie eine Ableitung vom Steuerelement durchführen und die Methoden GetStyle und SetStyle verwenden. Die SetStyle-Methode akzeptiert eine bitweise Kombination von ControlStyles-Werten, um zu bestimmen, ob das Steuerelement ein Standardklick- oder ein Doppelklickverhalten aufweist oder aber die Mauseingabe selbst verarbeitet. Außerdem enthält die SystemInformation-Klasse Eigenschaften, die die Funktionen der Maus beschreiben und angeben, wie die Maus mit dem Betriebssystem interagiert. In der folgenden Tabelle werden diese Eigenschaften zusammengefasst.
Eigenschaft | BESCHREIBUNG |
---|---|
DoubleClickSize | Ruft die Dimensionen des Bereichs, auf den Benutzer zweimal klicken müssen, damit zwei Mausklicks als Doppelklick erkannt werden, in Pixel ab |
DoubleClickTime | Ruft die maximale Anzahl von Millisekunden ab, die zwischen dem ersten und einem zweiten Mausklick verstreichen dürfen, damit die Mausaktion vom Betriebssystem als Doppelklick erkannt wird. |
MouseButtons | Ruft die Anzahl der Maustasten ab. |
MouseButtonsSwapped | Ruft einen Wert ab, der angibt, ob die Funktionen der linken und der rechten Maustaste vertauscht wurden. |
MouseHoverSize | Ruft die Abmessungen des Rechtecks in Pixel ab, auf das der Mauszeiger für eine bestimmte Zeit zeigen muss, bevor eine Mausbewegungsmeldung generiert wird. |
MouseHoverTime | Ruft die Zeit in Millisekunden ab, für die sich der Mauszeiger im Bewegungsrechteck befinden muss, bevor eine Mausbewegungsmeldung generiert wird. |
MousePresent | Ruft einen Wert ab, der angibt, ob eine Maus installiert ist |
MouseSpeed | Ruft einen Wert ab, der die aktuelle Mausgeschwindigkeit auf einer Skala von 1 bis 20 angibt |
MouseWheelPresent | Ruft einen Wert ab, der angibt, ob eine Maus mit einem Mausrad installiert ist. |
MouseWheelScrollDelta | Ruft die Größe des Deltawerts des Inkrements einer einzelnen Drehung des Mausrads ab |
MouseWheelScrollLines | Ruft die Anzahl der Zeilen ab, die mit einem Bildlauf erfasst werden, wenn das Mausrad gedreht wird. |
Weitere Informationen
.NET Desktop feedback