Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Remarque
Cette documentation est destinée aux développeurs .NET Framework qui souhaitent 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.
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 d’intérêt. Cette fonctionnalité améliore les performances en éliminant la nécessité d’interroger continuellement tous les éléments de l’interface utilisateur du système pour voir si des informations, une structure ou un état ont changé.
L’efficacité est également améliorée par la possibilité d’écouter les événements uniquement dans une étendue définie. Par exemple, un client peut écouter des événements de modification de focus sur tous les éléments UI Automation de l’arborescence ou sur un seul élément et ses descendants.
Remarque
Ne supposez pas que tous les événements possibles sont déclenchés par un fournisseur Microsoft UI Automation. Par exemple, toutes les modifications de propriété n’entraînent pas nécessairement le déclenchement d’événements par les fournisseurs de proxys standard pour les contrôles Windows Forms et Win32.
Pour une vue plus large des événements UI Automation, consultez vue d’ensemble des événements UI Automation.
Abonnement aux événements
Les applications clientes s’abonnent aux événements d’un type particulier en inscrivant 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 propriété | AutomationPropertyChangedEventArgs | AutomationPropertyChangedEventHandler |
AddStructureChangedEventHandler | Modification de 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 le souhaitez, vous pouvez gérer différents types d’événements dans une unique méthode, et utiliser cette méthode lors de plusieurs appels à l'une des options présentes dans le tableau. Par exemple, un seul AutomationEventHandler peut être configuré pour gérer différents événements différemment en fonction du EventId.
Remarque
Pour traiter les événements de fermeture de la fenêtre, convertissez le type d'argument passé au gestionnaire d'événements comme WindowClosedEventArgs. Étant donné que l’élément Microsoft UI Automation pour la fenêtre n’est plus valide, vous ne pouvez pas utiliser le paramètre pour récupérer des informations ; utilisez sender
à la GetRuntimeId place.
Avertissement
Si votre application peut recevoir des événements de son propre interface utilisateur, n’utilisez pas le thread d’interface utilisateur de votre application pour vous abonner à des événements ou pour vous désabonner. Cela peut entraîner un comportement imprévisible. Pour plus d’informations, consultez Problèmes de gestion de threads UI Automation.
Lors de l’arrêt ou lorsque les é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 | Descriptif |
---|---|
RemoveAutomationEventHandler | Annule l’inscription d’un gestionnaire d’événements qui a été enregistré à l’aide de AddAutomationEventHandler. |
RemoveAutomationFocusChangedEventHandler | Annule l’inscription d’un gestionnaire d’événements qui a été enregistré à l’aide de AddAutomationFocusChangedEventHandler. |
RemoveAutomationPropertyChangedEventHandler | Annule l’inscription d’un gestionnaire d’événements qui a été enregistré à l’aide de AddAutomationPropertyChangedEventHandler. |
RemoveAllEventHandlers | Annule l’inscription de tous les gestionnaires d’événements inscrits. |
Pour obtenir un exemple de code, consultez S’abonner aux événements UI Automation.
Voir aussi
- S’abonner aux événements UI Automation
- Vue d’ensemble des événements UI Automation
- Vue d’ensemble des propriétés UI Automation
- Exemple TrackFocus