Udostępnij za pośrednictwem


Wprowadzanie z klawiatury w aplikacjach formularzy systemu Windows

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 i klawiatury, zgłaszają zdarzenia, które można obsłużyć, aby uzyskać informacje o myszy lub klawiaturze wejściowej. W wielu przypadkach aplikacje Windows Forms będą mogły przetwarzać wszystkie dane wejściowe użytkownika po prostu przez obsługę tych zdarzeń. W innych przypadkach aplikacja może wymagać zastąpienia jednej z metod przetwarzania komunikatów w celu przechwycenia określonego komunikatu przed odebraniem go przez aplikację, formularz lub kontrolkę.

Zdarzenia myszy i klawiatury

Wszystkie kontrolki Windows Forms dziedziczą zestaw zdarzeń związanych z wprowadzaniem myszy i klawiatury. Na przykład kontrolka może obsłużyć KeyPress zdarzenie w celu określenia kodu znaku klawisza, który został naciśnięty, lub 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 i klawiatury, zobacz Using Keyboard Events and Mouse Events in Windows Forms (Używanie zdarzeń klawiatury i zdarzeń myszy w formularzach systemu Windows).

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.

Metoda 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.

Komunikaty za pomocą klawiatury i myszy są również przetwarzane przez dodatkowy zestaw metod zastępowalnych, które są specyficzne dla tych typów komunikatów. Aby uzyskać więcej informacji, zobacz How Keyboard Input Works (Jak działa wprowadzanie klawiatury) i How Mouse Input Works in Windows Forms (Jak działa wprowadzanie myszy w formularzach systemu Windows).

Zobacz też