Architecture du contrôle DataGridView (Windows Forms)
Le contrôle DataGridView et ses classes connexes sont conçus pour constituer un système flexible et extensible pour afficher et modifier des données sous forme de tableau. Ces classes sont toutes contenues dans l'espace de noms System.Windows.Forms, et elles portent toutes le préfixe "DataGridView".
Éléments d'architecture
Les principales classes auxiliaires DataGridView dérivent de DataGridViewElement. Le modèle objet suivant illustre la hiérarchie d'héritage de DataGridViewElement.
Modèle objet DataGridViewElement
La classe DataGridViewElement fournit une référence au contrôle DataGridView parent et a une propriété State qui détient une valeur qui représente une combinaison de valeurs issues de l'énumération DataGridViewElementStates.
Les sections suivantes décrivent les classes auxiliaires DataGridView de façon plus détaillées.
DataGridViewElementStates
L'énumération DataGridViewElementStates contient les valeurs suivantes :
Les valeurs de cette énumération peuvent être combinées avec les opérateurs logiques de bits, de sorte que la propriété State peut exprimer plusieurs états à la fois. Par exemple, un DataGridViewElement peut être simultanément Frozen, Selected et Visible.
Cellules et bandes
Le contrôle DataGridView comprend deux types d'objets fondamentaux : les cellules et les bandes. Toutes les cellules dérivent de la classe de base DataGridViewCell. Les deux types des bandes, DataGridViewColumn et DataGridViewRow, dérivent toutes deux de la classe de base DataGridViewBand.
Le contrôle DataGridView interagit avec plusieurs classes, mais celles que l'on rencontre le plus souvent sont les classes DataGridViewCell, DataGridViewColumnet DataGridViewRow.
DataGridViewCell
La cellule est l'unité fondamentale d'interaction pour le DataGridView. L'affichage est centré sur les cellules, et l'entrée de données s'effectue souvent par les cellules. Vous pouvez accéder aux cellules à l'aide de la collection Cells de la classe DataGridViewRow, et vous pouvez accéder aux cellules sélectionnées à l'aide de la collection SelectedCells du contrôle DataGridView. Le modèle d'objet suivant illustre cette utilisation et montre la hiérarchie d'héritage de DataGridViewCell.
Modèle objet DataGridViewCell
Le type DataGridViewCell est une classe abstraite de base, de laquelle tous les types de cellules dérivent. DataGridViewCell et ses types dérivés ne sont pas des contrôles Windows Forms, mais des contrôles Windows Forms hôtes. Toute fonctionnalité d'édition prise en charge par une cellule est généralement gérée par un contrôle hébergé.
Les objets DataGridViewCell ne contrôlent leur propre apparence et fonctionnalités de peinture de la même manière que les contrôles Windows Forms. À la place, la DataGridView est responsable de l'apparence de ses objets DataGridViewCell. Vous pouvez considérablement affecter l'apparence et le comportement des cellules en interagissant avec les propriétés et les événements du contrôle DataGridView. Lorsque vos besoins en matière de personnalisation dépassent les capacités du contrôle DataGridView, vous pouvez implémenter votre propre classe qui dérive de DataGridViewCell ou d'une de ses classes enfants.
La liste suivante présente les classes dérivées de DataGridViewCell :
Vos types de cellule personnalisés
DataGridViewColumn
Le schéma du magasin de données attaché du contrôle DataGridView est exprimé dans les colonnes du contrôle DataGridView. Vous pouvez accéder aux colonnes du contrôle DataGridView en utilisant la collection Columns. Vous pouvez accéder aux colonnes sélectionnées à l'aide de la collection SelectedColumns. Le modèle d'objet suivant illustre cette utilisation et montre la hiérarchie d'héritage de DataGridViewColumn.
Modèle objet DataGridViewColumn
Certains des types de cellule clés ont des types de colonne correspondants. Ils sont dérivés de la classe de base DataGridViewColumn.
La liste suivante présente les classes dérivées de DataGridViewColumn :
Vos types de colonnes personnalisés
Contrôles d'édition DataGridView
Les cellules qui prennent en charge la fonctionnalité d'édition avancée utilisent généralement un contrôle hébergé qui est dérivé d'un contrôle Windows Forms. Ces contrôles implémentent également l'interface IDataGridViewEditingControl. Le modèle objet suivant illustre l'utilisation de ces contrôles.
Modèle objet des contrôles d'édition DataGridView
Les contrôles d'édition suivants sont fournis avec le contrôle DataGridView :
Pour plus d'informations sur la création de vos propres contrôles d'édition, consultez Comment : héberger des contrôles dans des cellules DataGridView Windows Forms.
Le tableau suivant illustre la relation entre les types de cellule, les types de colonne et les contrôles d'édition.
Type de cellule |
Contrôle hébergé |
Type de colonne |
---|---|---|
N/A |
||
N/A |
||
N/A |
||
N/A |
||
DataGridViewRow
La classe DataGridViewRow affiche les champs de données d'un enregistrement depuis le magasin de données auquel le contrôle DataGridView est joint. Vous pouvez accéder aux lignes du contrôle DataGridView en utilisant la collection Rows. Vous pouvez accéder aux lignes sélectionnées à l'aide de la collection SelectedRows. Le modèle d'objet suivant illustre cette utilisation et montre la hiérarchie d'héritage de DataGridViewRow.
Modèle objet DataGridViewRow
Vous pouvez dériver vos propres types à partir de la classe DataGridViewRow, bien que cela ne soit généralement pas nécessaire. Le contrôle DataGridView contient plusieurs événements et propriétés liés aux lignes pour personnaliser le comportement de ses objets DataGridViewRow.
Si vous activez la propriété AllowUserToAddRows du contrôle DataGridView, une ligne spéciale permettant d'ajouter de nouvelles lignes apparaît comme la dernière ligne. Cette ligne fait partie de la collection Rows, mais possède des fonctionnalités spéciales pouvant exiger votre attention. Pour plus d'informations, consultez Utilisation de la ligne pour les nouveaux enregistrements dans le contrôle DataGridView Windows Forms.
Voir aussi
Référence
Vue d'ensemble du contrôle DataGridView (Windows Forms)