Dela via


UI Automation-händelser för klienter

Kommentar

Den här dokumentationen System.Windows.Automation är avsedd för .NET Framework-utvecklare som vill använda de hanterade UI Automation-klasserna som definierats i namnområdet. Den senaste informationen om UI Automation finns i Windows Automation API: UI Automation.

Det här avsnittet beskriver hur Microsoft UI Automation-händelser används av UI Automation-klienter.

Med UI Automation kan klienter prenumerera på händelser av intresse. Den här funktionen förbättrar prestandan genom att eliminera behovet av att kontinuerligt avsöka alla användargränssnittselement i systemet för att se om någon information, struktur eller tillstånd har ändrats.

Effektiviteten förbättras också genom möjligheten att endast lyssna efter händelser inom ett definierat omfång. En klient kan till exempel lyssna efter fokusändringshändelser på alla UI Automation-element i trädet, eller bara på ett element och dess underordnade element.

Kommentar

Anta inte att alla möjliga händelser genereras av en Microsoft UI Automation-provider. Till exempel leder inte alla egenskapsändringar till att händelser genereras av standardproxyprovidrar för Windows Forms- och Win32-kontroller.

En bredare vy över UI Automation-händelser finns i Översikt över UI Automation-händelser.

Prenumerera på händelser

Klientprogram prenumererar på händelser av ett visst slag genom att registrera en händelsehanterare med någon av följande metoder.

Metod Händelsetyp Typ av händelseargument Ombudstyp
AddAutomationFocusChangedEventHandler Fokusändring AutomationFocusChangedEventArgs AutomationFocusChangedEventHandler
AddAutomationPropertyChangedEventHandler Egenskapsändring AutomationPropertyChangedEventArgs AutomationPropertyChangedEventHandler
AddStructureChangedEventHandler Strukturändring StructureChangedEventArgs StructureChangedEventHandler
AddAutomationEventHandler Alla andra händelser som identifieras av en AutomationEvent AutomationEventArgs eller WindowClosedEventArgs AutomationEventHandler

Innan du anropar metoden måste du skapa en ombudsmetod för att hantera händelsen. Om du vill kan du hantera olika typer av händelser i en enda metod och skicka den här metoden i flera anrop till någon av metoderna i tabellen. En enskild AutomationEventHandler kan till exempel konfigureras för att hantera olika händelser på olika sätt beroende på EventId.

Kommentar

Om du vill bearbeta fönster stängda händelser skickar du den argumenttyp som skickas till händelsehanteraren som WindowClosedEventArgs. Eftersom Microsoft UI Automation-elementet för fönstret inte längre är giltigt kan du inte använda parametern sender för att hämta information. Använd GetRuntimeId i stället.

Varning

Om ditt program kan ta emot händelser från sitt eget användargränssnitt ska du inte använda programmets användargränssnittstråd för att prenumerera på händelser eller avbryta prenumerationen. Detta kan leda till oförutsägbart beteende. Mer information finns i UI Automation Threading Issues (UI Automation Threading Issues).

Vid avstängning, eller när UI Automation-händelser inte längre är av intresse för programmet, bör UI Automation-klienter anropa någon av följande metoder.

Metod beskrivning
RemoveAutomationEventHandler Avregistrerar en händelsehanterare som har registrerats med hjälp AddAutomationEventHandlerav .
RemoveAutomationFocusChangedEventHandler Avregistrerar en händelsehanterare som har registrerats med hjälp AddAutomationFocusChangedEventHandlerav .
RemoveAutomationPropertyChangedEventHandler Avregistrerar en händelsehanterare som har registrerats med hjälp AddAutomationPropertyChangedEventHandlerav .
RemoveAllEventHandlers Avregistrerar alla registrerade händelsehanterare.

Exempelkod finns i Prenumerera på UI Automation-händelser.

Se även