Partager via


Implémentation du modèle de contrôle Invoke d'UI Automation

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 présente les conventions et instructions à respecter pour implémenter IInvokeProvider, notamment les informations sur les événements et les propriétés. Des liens vers des références supplémentaires sont répertoriés à la fin de la rubrique.

Le modèle de contrôle InvokePattern est utilisé pour prendre en charge les contrôles qui ne conservent pas l'état lorsqu'ils sont activés, mais initialisent ou exécutent plutôt une action unique et non équivoque. Les contrôles qui conservent l'état, tels que les cases à cocher et les cases d'option, doivent implémenter respectivement IToggleProvider et ISelectionItemProvider à la place. Pour obtenir des exemples de contrôles qui implémentent le modèle de contrôle Invoke, consultez Mappage de modèle de contrôle pour les clients UI Automation.

Cette rubrique comprend les sections suivantes.

  • Conventions et instructions d'implémentation
  • Membres requis pour IInvokeProvider
  • Exceptions
  • Rubriques connexes

Conventions et instructions d'implémentation

Lorsque vous implémentez le modèle de contrôle Invoke, notez les conventions et instructions suivantes :

  • Les contrôles implémentent IInvokeProvider si le même comportement n'est pas exposé par le biais d'un autre fournisseur de modèle de contrôle. Par exemple, si, sur un contrôle, la méthode Invoke exécute la même action que la méthode Expand ou Collapse, le contrôle ne doit pas implémenter IInvokeProvider.

  • Pour appeler un contrôle, il convient généralement de cliquer, double-cliquer ou appuyer sur ENTRÉE, un raccourci clavier prédéfini ou une autre combinaison de séquences de touches.

  • InvokedEvent est déclenché sur un contrôle qui a été activé (en réponse à un contrôle réalisant son action associée). Si possible, l'événement doit être déclenché une fois que le contrôle a terminé l'action et retourné une valeur sans se bloquer. L'événement Invoked doit être déclenché avant de prendre en charge la demande Invoke dans les scénarios suivants :

    • Il n'est pas possible ou pratique d'attendre que l'action soit terminée.

    • L'action requiert une interaction avec l'utilisateur.

    • L'action prend du temps et entraînera le blocage du client pendant un long moment.

  • Si l'appel du contrôle entraîne des effets secondaires significatifs, ces effets secondaires doivent être exposés via la propriété HelpText. Par exemple, bien que Invoke ne soit pas associé à la sélection, Invoke peut entraîner la sélection d'un autre contrôle.

  • Les effets du pointage (ou pointage avec la souris) ne constituent généralement pas un événement Invoked. Toutefois, les contrôles qui exécutent une action (par opposition à un effet visuel) basée sur l'état pointé doivent prendre en charge le modèle de contrôle InvokePattern.

RemarqueRemarque

Cette implémentation est considérée comme un problème d'accessibilité si le contrôle ne peut être appelé que suite à un effet secondaire lié à la souris.

  • L'appel d'un contrôle est différent de la sélection d'un élément. Toutefois, selon le contrôle, l'appel peut avoir comme effet secondaire la sélection de l'élément. Par exemple, appeler un élément de la liste de documents Microsoft Word dans le dossier Mes documents sélectionne l'élément et ouvre le document.

  • Un élément peut disparaître de l'arborescence UI Automation dès qu'il est appelé. La demande d'informations de l'élément fourni par le rappel d'événement peut échouer. La prérécupération d'informations mises en cache est la solution recommandée.

  • Les contrôles peuvent implémenter plusieurs modèles de contrôle. Par exemple, le contrôle Fill Color dans la barre d'outils Microsoft Excel implémente les modèles de contrôle InvokePattern et ExpandCollapsePattern. ExpandCollapsePattern expose le menu et le InvokePattern remplit la sélection active de la couleur choisie.

Membres requis pour IInvokeProvider

Les propriétés et méthodes suivantes sont nécessaires à l'implémentation de IInvokeProvider.

Membres requis

Type de membre

Remarques

Invoke

méthode

Invoke est un appel asynchrone et doit retourner immédiatement une valeur sans se bloquer.

Ce comportement est particulièrement critique pour les contrôles qui, directement ou indirectement, lancent une boîte de dialogue modale lorsqu'ils sont appelés. Tout client UI Automation responsable de l'événement restera bloqué jusqu'à la fermeture de la boîte de dialogue modale.

Exceptions

Les fournisseurs doivent lever les exceptions suivantes.

Type d'exception

Condition

ElementNotEnabledException

Si le contrôle n'est pas activé.

Voir aussi

Tâches

Prendre en charge des modèles de contrôle dans un fournisseur UI Automation

Appeler un contrôle à l'aide d'UI Automation

Utiliser la mise en cache dans UI Automation

Concepts

Vue d'ensemble des modèles de contrôle UI Automation

Modèles de contrôle UI Automation pour les clients

Vue d'ensemble de l'arborescence UI Automation