Partager via


Architecture du contrôle DataGridView (Windows Forms)

Mise à jour : novembre 2007

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

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

Modèle objet DataGridViewCell

Le type DataGridViewCell est une classe de base abstraite, à partir de laquelle tous les types de cellule dérivent. DataGridViewCell et ses types dérivés ne sont pas des contrôles Windows Forms, mais certains hébergent des contrôles Windows Forms. 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 :

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

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 :

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

Modèle objet du contrôle 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

DataGridViewButtonCell

N/A

DataGridViewButtonColumn

DataGridViewCheckBoxCell

N/A

DataGridViewCheckBoxColumn

DataGridViewComboBoxCell

DataGridViewComboBoxEditingControl

DataGridViewComboBoxColumn

DataGridViewImageCell

N/A

DataGridViewImageColumn

DataGridViewLinkCell

N/A

DataGridViewLinkColumn

DataGridViewTextBoxCell

DataGridViewTextBoxEditingControl

DataGridViewTextBoxColumn

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

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

Concepts

Utilisation de la ligne pour les nouveaux enregistrements dans le contrôle DataGridView Windows Forms

Référence

Vue d'ensemble du contrôle DataGridView (Windows Forms)

Autres ressources

Personnalisation du contrôle DataGridView Windows Forms