Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das Empfangen und Behandeln von Mauseingaben ist ein wichtiger Bestandteil jeder Windows-Anwendung. Sie können Mausereignisse behandeln, um eine Aktion in Ihrer Anwendung auszuführen, oder Mauspositionsinformationen zum Ausführen von Treffertests oder anderen Aktionen verwenden. Außerdem können Sie ändern, wie die Steuerelemente in Ihrer Anwendung die Mauseingaben verarbeiten. In diesem Artikel werden diese Mausereignisse ausführlich beschrieben und beschrieben, wie Sie Systemeinstellungen für die Maus abrufen und ändern.
In Windows Forms werden Benutzereingaben in Form von Windows-Nachrichtenan Anwendungen gesendet. Eine Reihe überschreibbarer Methoden verarbeitet diese Meldungen auf Anwendungs-, Formular- und Steuerelementebene. Wenn diese Methoden Mausnachrichten empfangen, lösen sie Ereignisse aus, die behandelt werden können, um Informationen über die Mauseingabe zu erhalten. In vielen Fällen können Windows Forms-Anwendungen alle Benutzereingaben einfach verarbeiten, indem sie diese Ereignisse behandeln. In anderen Fällen kann eine Anwendung eine der Methoden überschreiben, mit denen Nachrichten verarbeitet werden, um eine bestimmte Nachricht abzufangen, bevor sie von der Anwendung, dem Formular oder dem Steuerelement empfangen wird.
Mausereignisse
Alle Windows Forms-Steuerelemente erben verschiedene Ereignisse, die sich auf Maus- und Tastatureingaben beziehen. Beispielsweise kann ein Steuerelement das MouseClick Ereignis behandeln, um die Position eines Mausklicks zu bestimmen. Weitere Informationen zu Mausereignissen finden Sie unter Verwenden von Mausereignissen.
Mausposition und Treffertests
Wenn der Benutzer die Maus bewegt, bewegt das Betriebssystem den Mauszeiger. Der Mauszeiger enthält ein einzelnes Pixel, das als Hotspot bezeichnet wird, den das Betriebssystem verfolgt und als Position des Zeigers erkennt. Wenn der Benutzer die Maus bewegt oder eine Maustaste drückt, löst das Control, das das HotSpot enthält, das entsprechende Mausereignis aus.
Sie können die aktuelle Mausposition mit der Location-Eigenschaft von MouseEventArgs beim Verarbeiten eines Mausereignisses oder durch die Verwendung der Position-Eigenschaft der Cursor-Klasse abrufen. Sie können dann Mauspositionsinformationen verwenden, um Treffertests durchzuführen, und dann eine Aktion basierend auf der Position der Maus ausführen. Die Treffertestfunktion ist in mehrere Steuerelemente in Windows Forms integriert, z. B. in die ListView, TreeView, MonthCalendar und DataGridView Steuerelemente.
Treffertests sind hilfreich, um zu bestimmen, wann Ihre Anwendung eine bestimmte Aktion ausführen soll, wenn sie mit dem entsprechenden Mausereignis verwendet wird, z. B. MouseHover.
Ändern der Mauseingabeeinstellungen
Sie können erkennen und ändern, wie ein Steuerelement Mauseingaben verarbeitet, indem Sie vom Steuerelement ableiten und die Methoden GetStyle und SetStyle verwenden. Die SetStyle Methode verwendet eine bitweise Kombination von ControlStyles Werten, um zu bestimmen, ob das Steuerelement standardklick, doppelklickverhalten hat oder ob das Steuerelement eine eigene Mausverarbeitung behandelt. 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 sind diese Eigenschaften zusammengefasst.
Eigentum | BESCHREIBUNG |
---|---|
DoubleClickSize | Ruft die Dimensionen in Pixeln des Bereichs ab, in dem der Benutzer zweimal klicken muss, damit das Betriebssystem die beiden Klicks als Doppelklick erkennt. |
DoubleClickTime | Ruft die maximale Anzahl von Millisekunden ab, die zwischen einem ersten Klick und einem zweiten Klick verstrichen werden kann, damit die Mausaktion als Doppelklick betrachtet wird. |
MouseButtons | Ruft die Anzahl der Schaltflächen auf der Maus ab. |
MouseButtonsSwapped | Ruft einen Wert ab, der angibt, ob die Funktionen der linken und rechten Maustaste getauscht wurden. |
MouseHoverSize | Ruft die Abmessungen des Rechtecks in Pixel ab, in dem der Mauszeiger für die Mauszeigerzeit bleiben muss, bevor eine Mauszeigernachricht generiert wird. |
MouseHoverTime | Ruft die Zeit in Millisekunden ab, die der Mauszeiger im Hoverrechteck bleiben muss, bevor eine Mauszeigernachricht generiert wird. |
MousePresent | Ruft einen Wert ab, der angibt, ob eine Maus installiert ist. |
MouseSpeed | Ruft einen Wert ab, der die aktuelle Mausgeschwindigkeit von 1 bis 20 angibt. |
MouseWheelPresent | Ruft einen Wert ab, der angibt, ob eine Maus mit einem Mausrad installiert ist. |
MouseWheelScrollDelta | Ruft den Wert des Deltawerts der Inkrementierung einer einzelnen Mausraddrehung ab. |
MouseWheelScrollLines | Ruft die Anzahl der Zeilen ab, die gescrollt werden sollen, wenn das Mausrad gedreht wird. |
Methoden zum Verarbeiten von Benutzereingabemeldungen
Formulare und Steuerelemente haben Zugriff auf die Schnittstelle IMessageFilter und mehrere überschreibbare Methoden, die Windows-Meldungen an verschiedenen Stellen der Meldungswarteschlange verarbeiten. Diese Methoden verfügen alle über einen Message-Parameter, der die Details von Windows-Nachrichten auf niedriger Ebene kapselt. Sie können diese Methoden implementieren oder überschreiben, um die Meldung zu untersuchen und anschließend zu verarbeiten oder an den nächsten Consumer in der Meldungswarteschlange zu übergeben. In der folgenden Tabelle sind die Methoden aufgeführt, mit denen alle Windows-Nachrichten in Windows Forms verarbeitet werden.
Methode | Hinweise |
---|---|
PreFilterMessage | Diese Methode fängt in die Warteschlange eingereihte (veröffentlichte) Windows-Meldungen auf Anwendungsebene ab. |
PreProcessMessage | Diese Methode fängt Windows-Nachrichten auf der Ebene von Formularen und Steuerelementen ab, bevor sie verarbeitet werden. |
WndProc | Diese Methode verarbeitet Windows-Nachrichten auf Formular- und Steuerungsebene. |
DefWndProc | Diese Methode führt die Standardverarbeitung von Windows-Meldungen auf Formular- und Steuerelementebene aus. Dies bietet die minimale Funktionalität eines Fensters. |
OnNotifyMessage | Diese Methode fängt Nachrichten auf Formular- und Steuerelementebene ab, nachdem sie verarbeitet wurden. Das Stilbit EnableNotifyMessage muss festgelegt werden, damit diese Methode aufgerufen wird. |
Siehe auch
.NET Desktop feedback