Omówienie korzystania z myszy (Windows Forms .NET)
Odbieranie i obsługa danych wejściowych myszy jest ważną częścią każdej aplikacji systemu Windows. Zdarzenia myszy umożliwiają wykonywanie akcji w aplikacji lub używanie informacji o lokalizacji myszy do przeprowadzania testów trafień lub innych akcji. 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 Systemu Windows 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ć MouseClick zdarzenie 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 element zawierający HotSpot podnosi odpowiednie zdarzenie myszy.
Możesz uzyskać bieżącą pozycję myszy z właściwością Location MouseEventArgs podczas obsługi zdarzenia myszy lub za pomocą Position właściwości Cursor klasy. 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 systemu Windows, takich jak ListView, TreeViewMonthCalendar i DataGridView .
Używane z odpowiednim zdarzeniem myszy, MouseHover na przykład testowanie trafień jest bardzo przydatne do określania, kiedy aplikacja powinna wykonać określoną akcję.
Zmienianie ustawień wprowadzania myszy
Możesz wykryć i zmienić sposób obsługi danych wejściowych myszy przez kontrolkę, wyprowadzając z kontrolki i przy użyciu GetStyle metod i SetStyle . Metoda SetStyle przyjmuje bitową kombinację ControlStyles wartości, aby określić, czy kontrolka będzie miała standardowe kliknięcie, dwukrotne kliknięcie, czy kontrolka będzie obsługiwać własne 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.
Właściwości | 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ć na czas aktywowania myszy przed wygenerowaniem komunikatu myszy. |
MouseHoverTime | Pobiera czas ( w milisekundach), że wskaźnik myszy musi pozostać w prostokątze aktywowania, zanim zostanie wygenerowany komunikat 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ść różnicową inkrementacji 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 przetwarzają komunikaty systemu Windows w różnych punktach kolejki komunikatów. Wszystkie te metody mają Message parametr, który hermetyzuje szczegóły komunikatów systemu Windows niskiego poziomu. Można zaimplementować lub zastąpić te metody, aby zbadać komunikat, a następnie użyć komunikatu lub przekazać go do następnego konsumenta w kolejce komunikatów. W poniższej tabeli przedstawiono metody przetwarzania wszystkich komunikatów systemu Windows w formularzach Windows Forms.
Method | Uwagi |
---|---|
PreFilterMessage | Ta metoda przechwytuje komunikaty systemu Windows umieszczone w kolejce (znane również jako opublikowane) 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. Aby EnableNotifyMessage wywołać tę metodę, należy ustawić bit stylu. |
Zobacz też
.NET Desktop feedback