Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Uwaga / Notatka
Ta dokumentacja jest przeznaczona dla deweloperów programu .NET Framework, którzy chcą używać zarządzanych klas automatyzacji interfejsu użytkownika zdefiniowanych w przestrzeni nazw System.Windows.Automation. Aby uzyskać najnowsze informacje na temat automatyzacji interfejsu użytkownika, zobacz Windows Automation API: Automatyzacja interfejsu użytkownika.
W tym temacie opisano, jak zdarzenia automatyzacji interfejsu użytkownika firmy Microsoft są używane przez klientów automatyzacji interfejsu użytkownika.
Automatyzacja interfejsu użytkownika umożliwia klientom subskrybowanie interesujących zdarzeń. Ta funkcja zwiększa wydajność, eliminując potrzebę ciągłego sondowania wszystkich elementów interfejsu użytkownika w systemie, aby sprawdzić, czy jakiekolwiek informacje, struktura lub stan uległy zmianie.
Wydajność jest również lepsza dzięki możliwości nasłuchiwania zdarzeń tylko w zdefiniowanym zakresie. Na przykład klient może nasłuchiwać zdarzeń zmiany fokusu dla wszystkich elementów automatyzacji interfejsu użytkownika w drzewie lub tylko jednego elementu i jego elementów podrzędnych.
Uwaga / Notatka
Nie należy zakładać, że wszystkie możliwe zdarzenia są zgłaszane przez dostawcę automatyzacji interfejsu użytkownika firmy Microsoft. Na przykład nie wszystkie zmiany właściwości powodują wywoływanie zdarzeń przez standardowych dostawców proxy dla kontrolek Windows Forms i Win32.
Aby uzyskać szerszy widok zdarzeń automatyzacji interfejsu użytkownika, zobacz Omówienie zdarzeń automatyzacji interfejsu użytkownika.
Subskrybowanie zdarzeń
Aplikacje klienckie subskrybują zdarzenia określonego rodzaju, rejestrując procedurę obsługi zdarzeń przy użyciu jednej z następujących metod.
Metoda | Typ zdarzenia | Typ argumentów zdarzeń | Typ delegata |
---|---|---|---|
AddAutomationFocusChangedEventHandler | Zmiana fokusu | AutomationFocusChangedEventArgs | AutomationFocusChangedEventHandler |
AddAutomationPropertyChangedEventHandler | Zmiana własności | AutomationPropertyChangedEventArgs | AutomationPropertyChangedEventHandler |
AddStructureChangedEventHandler | Zmiana struktury | StructureChangedEventArgs | StructureChangedEventHandler |
AddAutomationEventHandler | Wszystkie inne zdarzenia zidentyfikowane przez element AutomationEvent | AutomationEventArgs lub WindowClosedEventArgs | AutomationEventHandler |
Przed wywołaniem metody należy utworzyć metodę delegata do obsługi zdarzenia. Jeśli wolisz, możesz obsłużyć różne rodzaje zdarzeń w jednej metodzie i przekazać tę metodę w wielu wywołaniach do jednej z metod w tabeli. Na przykład można skonfigurować pojedynczy komponent AutomationEventHandler do obsługi różnych zdarzeń w różny sposób zgodnie z EventId.
Uwaga / Notatka
Aby przetworzyć zdarzenia związane z zamknięciem okna, należy rzutować typ argumentu przekazywanego do obsługującego zdarzenie jako WindowClosedEventArgs. Ponieważ element automatyzacji interfejsu użytkownika firmy Microsoft dla okna nie jest już prawidłowy, nie można użyć parametru sender
do pobrania informacji; zamiast tego użyj polecenia GetRuntimeId .
Ostrzeżenie
Jeśli aplikacja może odbierać zdarzenia z własnego interfejsu użytkownika, nie używaj wątku interfejsu użytkownika aplikacji do subskrybowania zdarzeń ani anulowania subskrypcji. Może to prowadzić do nieprzewidywalnego zachowania. Aby uzyskać więcej informacji, zobacz Problemy z wątkami automatyzacji interfejsu użytkownika.
Po zamknięciu lub gdy zdarzenia automatyzacji interfejsu użytkownika nie są już interesujące dla aplikacji, klienci automatyzacji interfejsu użytkownika powinni wywołać jedną z następujących metod.
Metoda | Opis |
---|---|
RemoveAutomationEventHandler | Wyrejestrowuje procedurę obsługi zdarzeń zarejestrowaną przy użyciu polecenia AddAutomationEventHandler. |
RemoveAutomationFocusChangedEventHandler | Wyrejestrowuje procedurę obsługi zdarzeń zarejestrowaną przy użyciu polecenia AddAutomationFocusChangedEventHandler. |
RemoveAutomationPropertyChangedEventHandler | Wyrejestrowuje procedurę obsługi zdarzeń zarejestrowaną przy użyciu polecenia AddAutomationPropertyChangedEventHandler. |
RemoveAllEventHandlers | Wyrejestrowuje wszystkie zarejestrowane programy obsługi zdarzeń. |
Na przykład kod można znaleźć w temacie Subskrybowanie zdarzeń automatyzacji interfejsu użytkownika.
Zobacz także
- Subskrybowanie zdarzeń automatyzacji interfejsu użytkownika
- Omówienie zdarzeń automatyzacji interfejsu użytkownika
- Właściwości automatyzacji interfejsu użytkownika — omówienie
- Przykład TrackFocus