Partager via


Événements UI Automation pour les clients

RemarqueRemarque

Cette documentation s'adresse aux développeurs .NET Framework qui veulent utiliser les classes UI Automation managées définies dans l'espace de noms System.Windows.Automation.Pour obtenir les informations les plus récentes sur UI Automation, consultez API Windows Automation : UI Automation (page éventuellement en anglais).

Cette rubrique décrit comment les événements Microsoft UI Automation sont utilisés par les clients UI Automation.

UI Automation permet aux clients de s'abonner à des événements intéressants. Cette fonction améliore les performances en éliminant le besoin d'interroger continuellement tous les éléments d'UI du système pour savoir si certaines informations, la structure ou l'état ont été modifiés.

L'efficacité est également améliorée par la capacité à écouter des événements uniquement dans une portée définie. Par exemple, un client peut écouter des événements de modification du focus sur tous les éléments UI Automation de l'arborescence ou sur un seul élément et ses descendants.

RemarqueRemarque

Ne pensez pas que tous les événements possibles sont déclenchés par un fournisseur Microsoft UI Automation.Par exemple, les modifications de propriété ne provoquent pas toutes le déclenchement des événements par les fournisseurs de proxys standard pour les contrôles Windows Forms et Win32.

Pour un affichage plus général des événements UI Automation, consultez Vue d'ensemble des événements UI Automation.

Cette rubrique comprend les sections suivantes.

  • Abonnement aux événements
  • Rubriques connexes

Abonnement aux événements

Les applications clientes s'abonnent à des événements d'un type particulier en enregistrant un gestionnaire d'événements, à l'aide de l'une des méthodes suivantes.

Méthode

Type d'événement

Type d'arguments d'événement

Type délégué

AddAutomationFocusChangedEventHandler

Modification du focus

AutomationFocusChangedEventArgs

AutomationFocusChangedEventHandler

AddAutomationPropertyChangedEventHandler

Modification de la propriété

AutomationPropertyChangedEventArgs

AutomationPropertyChangedEventHandler

AddStructureChangedEventHandler

Modification de la structure

StructureChangedEventArgs

StructureChangedEventHandler

AddAutomationEventHandler

Tous les autres événements, identifiés par un AutomationEvent

AutomationEventArgs ou WindowClosedEventArgs

AutomationEventHandler

Avant d'appeler la méthode, vous devez créer une méthode déléguée pour gérer l'événement. Si vous préférez, vous pouvez gérer différents types d'événements dans une seule méthode et passer cette méthode à plusieurs appels vers l'une des méthodes du tableau. Par exemple, un seul AutomationEventHandler peut être installé pour gérer divers événements de manière différente selon le EventId.

RemarqueRemarque

Pour traiter des événements de fermeture de fenêtre, effectuez un cast du type d'argument passé au gestionnaire d'événements en tant que WindowClosedEventArgs.Étant donné que l'élément Microsoft UI Automation de la fenêtre n'est plus valide, vous ne pouvez pas utiliser le paramètre sender pour récupérer des informations ; utilisez plutôt GetRuntimeId.

Remarque AttentionAttention

Si votre application peut recevoir des événements de sa propre UI, n'utilisez pas le thread d'UI de votre application pour vous abonner ou vous désabonner à des événements.Le faire pourrait entraîner un comportement imprévisible.Pour plus d'informations, consultez Problèmes liés aux threads UI Automation.

Lors de la fermeture ou lorsque des événements UI Automation ne sont plus intéressants pour l'application, les clients UI Automation doivent appeler l'une des méthodes suivantes.

Méthode

Description

RemoveAutomationEventHandler

Annule l'inscription d'un gestionnaire d'événements inscrit à l'aide de AddAutomationEventHandler.

RemoveAutomationFocusChangedEventHandler

Annule l'inscription d'un gestionnaire d'événements inscrit à l'aide de AddAutomationFocusChangedEventHandler.

RemoveAutomationPropertyChangedEventHandler

Annule l'inscription d'un gestionnaire d'événements inscrit à l'aide de AddAutomationPropertyChangedEventHandler.

RemoveAllEventHandlers

Annule l'inscription de tous les gestionnaires d'événements enregistrés.

Pour obtenir un exemple de code, consultez S'abonner à des événements UI Automation.

Voir aussi

Tâches

S'abonner à des événements UI Automation

TrackFocus Sample

Concepts

Vue d'ensemble des événements UI Automation

Vue d'ensemble des propriétés UI Automation