Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Odbieranie i obsługa danych wejściowych myszy jest ważną częścią każdej aplikacji systemu Windows. Możliwość obsługi zdarzeń myszy umożliwia wykonywanie akcji w aplikacji lub używanie informacji o lokalizacji myszy do wykonywania testów trafień lub innych działań. Ponadto możesz zmienić sposób, w jaki kontrolki w aplikacji obsługują wprowadzanie myszy. W tym artykule opisano szczegółowo te zdarzenia myszy oraz sposób uzyskiwania i zmieniania ustawień systemowych myszy.
W formularzach Windows Forms dane wejściowe użytkownika są wysyłane do aplikacji w postaci komunikatów systemu Windows . Seria metod zastępowalnych przetwarza te komunikaty na poziomie aplikacji, formularza i kontrolki. Gdy te metody odbierają komunikaty myszy, zgłaszają zdarzenia, które można obsłużyć, aby uzyskać informacje o danych wejściowych myszy. W wielu przypadkach aplikacje Windows Forms mogą przetwarzać wszystkie dane wejściowe użytkownika po prostu przez obsługę tych zdarzeń. W innych przypadkach aplikacja może zastąpić jedną z metod przetwarzania komunikatów w celu przechwycenia określonego komunikatu przed odebraniem przez aplikację, formularz lub kontrolkę.
Zdarzenia myszy
Wszystkie kontrolki Windows Forms dziedziczą zestaw zdarzeń związanych z wprowadzaniem myszy i klawiatury. Na przykład, kontrolka może obsłużyć zdarzenie MouseClick w celu określenia lokalizacji kliknięcia myszą. Aby uzyskać więcej informacji na temat zdarzeń myszy, zobacz Używanie zdarzeń myszy.
Lokalizacja myszy i testowanie trafień
Gdy użytkownik przesuwa mysz, system operacyjny przenosi wskaźnik myszy. Wskaźnik myszy zawiera jeden piksel, nazywany punktem gorącym, który system operacyjny śledzi i rozpoznaje jako pozycję wskaźnika. Gdy użytkownik przesuwa mysz lub naciska przycisk myszy, Control, który zawiera HotSpot, wywołuje odpowiednie zdarzenie myszy.
Aktualne położenie myszy można uzyskać za pomocą właściwości Location obiektu MouseEventArgs podczas obsługi zdarzenia myszy lub za pomocą właściwości Position klasy Cursor. Następnie można użyć informacji o lokalizacji myszy do przeprowadzenia testowania trafień, a następnie wykonać akcję na podstawie lokalizacji myszy. Funkcja testowania trafień jest wbudowana w kilka kontrolek w formularzach Windows, takich jak ListView, TreeView, MonthCalendar i DataGridView.
Hit-testing jest przydatne do określenia, kiedy aplikacja powinna wykonać konkretną akcję, gdy jest używane wraz z odpowiednim zdarzeniem myszy, takim jak MouseHover.
Zmienianie ustawień wprowadzania myszy
Możesz wykryć i zmienić sposób, w jaki kontrolka obsługuje dane wejściowe myszy, dziedzicząc z kontrolki i używając metod GetStyle i SetStyle. Metoda SetStyle przyjmuje bitową kombinację ControlStyles wartości, aby określić, czy kontrolka ma standardowe zachowanie przy kliknięciu i dwukrotnym kliknięciu, czy też samodzielnie obsługuje przetwarzanie myszy. SystemInformation Ponadto klasa zawiera właściwości, które opisują możliwości myszy i określają sposób interakcji myszy z systemem operacyjnym. Poniższa tabela zawiera podsumowanie tych właściwości.
| Majątek | Opis |
|---|---|
| DoubleClickSize | Pobiera wymiary w pikselach obszaru, w którym użytkownik musi kliknąć dwa razy, aby system operacyjny rozważył dwa kliknięcia dwukrotnie. |
| DoubleClickTime | Pobiera maksymalną liczbę milisekund, które mogą upłynąć między pierwszym kliknięciem a drugim kliknięciem, aby akcja myszy została uznana za dwukrotne kliknięcie. |
| MouseButtons | Pobiera liczbę przycisków myszy. |
| MouseButtonsSwapped | Pobiera wartość wskazującą, czy funkcje przycisków myszy po lewej i prawej stronie zostały zamienione. |
| MouseHoverSize | Pobiera wymiary w pikselach prostokąta, w którym wskaźnik myszy musi pozostać przez czas najechania kursorem, zanim wygenerowany zostanie komunikat o najechaniu kursorem. |
| MouseHoverTime | Pobiera czas (w milisekundach), przez jaki wskaźnik myszy musi pozostać w prostokącie najechania, zanim zostanie wygenerowany komunikat o najechaniu myszy. |
| MousePresent | Pobiera wartość wskazującą, czy jest zainstalowana mysz. |
| MouseSpeed | Pobiera wartość wskazującą bieżącą prędkość myszy z zakresu od 1 do 20. |
| MouseWheelPresent | Pobiera wartość wskazującą, czy jest zainstalowana mysz z kółkiem myszy. |
| MouseWheelScrollDelta | Pobiera wartość delta przyrostu pojedynczego obrotu kółkiem myszy. |
| MouseWheelScrollLines | Pobiera liczbę wierszy do przewijania po obróceniu kółka myszy. |
Metody przetwarzania komunikatów wejściowych użytkownika
Formularze i kontrolki mają dostęp do interfejsu IMessageFilter oraz zestawu metod, które można przesłonić i które przetwarzają komunikaty systemu Windows na różnych etapach w kolejce komunikatów. Wszystkie te metody mają parametr Message, który hermetyzuje szczegóły komunikatów systemu Windows niskiego poziomu. Można zaimplementować lub zastąpić te metody, aby zbadać komunikat, a potem przetworzyć go lub przekazać do następnego konsumenta w kolejce. W poniższej tabeli przedstawiono metody przetwarzania wszystkich komunikatów systemu Windows w formularzach Windows Forms.
| Metoda | Notatki |
|---|---|
| PreFilterMessage | Ta metoda przechwytuje umieszczone w kolejce (znane również jako wysłane) komunikaty systemu Windows na poziomie aplikacji. |
| PreProcessMessage | Ta metoda przechwytuje komunikaty systemu Windows na poziomie formularza i kontrolki przed ich przetworzeniem. |
| WndProc | Ta metoda przetwarza komunikaty systemu Windows na poziomie formularza i kontrolki. |
| DefWndProc | Ta metoda wykonuje domyślne przetwarzanie komunikatów systemu Windows na poziomie formularza i kontrolki. Zapewnia to minimalną funkcjonalność okna. |
| OnNotifyMessage | Ta metoda przechwytuje komunikaty na poziomie formularza i kontrolki po ich przetworzeniu. Bit stylu EnableNotifyMessage musi być ustawiony, aby wywołać tę metodę. |
Zobacz także
.NET Desktop feedback