Implémentation du modèle de contrôle Grid d’UI Automation

Notes

Cette documentation s’adresse 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 dernières informations sur UI Automation, consultez API Windows Automation : UI Automation.

Cette rubrique présente les conventions et directives à respecter pour implémenter IGridProvider, notamment les informations sur les propriétés, les méthodes et les événements. Des liens vers des références supplémentaires sont répertoriés à la fin de la vue d'ensemble.

Le modèle de contrôle GridPattern permet de prendre en charge les contrôles qui agissent comme des conteneurs pour une collection d’éléments enfants. Les enfants de cet élément doivent implémenter IGridItemProvider et être organisés en un système de coordonnées logiques à deux dimensions, qui peut être parcouru par ligne et par colonne. Pour obtenir des exemples de contrôles implémentant ce modèle de contrôle, consultez Control Pattern Mapping for UI Automation Clients.

Conventions et directives d'implémentation

Quand vous implémentez le modèle de contrôle Grid, notez les conventions et recommandations suivantes :

  • Les coordonnées de grille sont de base zéro, les coordonnées de la cellule supérieure gauche (ou supérieure droite en fonction des paramètres régionaux) ayant pour coordonnées (0, 0).

  • Si une cellule est vide, un élément UI Automation doit être retourné pour permettre la prise en charge de la propriété ContainingGrid de cette cellule. Cela est possible quand la disposition des éléments enfants de la grille est semblable à celle d’un tableau non justifié (consultez l’exemple ci-dessous).

Windows Explorer view showing ragged layout. Exemple de contrôle de grille avec des coordonnées vides

  • Une grille avec un seul élément est nécessaire pour implémenter IGridProvider , s’il est logiquement considéré comme une grille. Le nombre d’éléments enfants de la grille est immatériel.

  • Selon l’implémentation du fournisseur, les lignes et les colonnes masquées peuvent être chargées dans l’arborescence UI Automation, et sont donc reflétées dans les propriétés RowCount et ColumnCount. Si les lignes et les colonnes masquées n’ont pas encore été chargées, elles ne doivent pas être comptabilisées.

  • IGridProvider n’active pas la manipulation active d’une grille. ITransformProvider doit être implémenté pour activer cette fonctionnalité.

  • Utilisez StructureChangedEventHandler pour écouter les changements de structure ou de disposition apportés à la grille, par exemple quand des cellules sont ajoutées, supprimées ou fusionnées.

  • Utilisez AutomationFocusChangedEventHandler pour suivre le parcours des éléments ou des cellules d’une grille.

Membres obligatoires pour IGridProvider

Les propriétés et méthodes suivantes sont nécessaires à l’implémentation de l’interface IGridProvider.

Membres nécessaires Type Notes
RowCount Propriété Aucun
ColumnCount Propriété Aucun
GetItem Méthode Aucun

Ce modèle de contrôle n’est associé aucun événement.

Exceptions

Les fournisseurs doivent lever les exceptions suivantes.

Type d'exception Condition
ArgumentOutOfRangeException GetItem

- Si la coordonnée de la ligne demandée est supérieure au RowCount ou que la coordonnée de la colonne est supérieure au ColumnCount.
ArgumentOutOfRangeException GetItem

- Si l’une des coordonnées de ligne ou de colonne demandées est inférieure à zéro.

Voir aussi