Partager via


Architecture de contrôle DataGridView (Windows Forms)

Le DataGridView contrôle et ses classes associées sont conçus pour être un système flexible et extensible permettant d’afficher et de modifier des données tabulaires. Ces classes sont toutes contenues dans l’espace System.Windows.Forms de noms, et elles sont toutes nommées avec le préfixe « DataGridView ».

Éléments d’architecture

Les classes compagnons primaires DataGridView dérivent de DataGridViewElement. Le modèle objet suivant illustre la hiérarchie d’héritage DataGridViewElement .

Diagramme montrant la hiérarchie du modèle objet DataGridViewElement.

La DataGridViewElement classe fournit une référence au contrôle parent DataGridView et a une State propriété, qui contient une valeur qui représente une combinaison de valeurs de l’énumération DataGridViewElementStates .

Les sections suivantes décrivent plus en détail les classes associées DataGridView.

DataGridViewElementStates

L’énumération DataGridViewElementStates contient les valeurs suivantes :

Les valeurs de cette énumération peuvent être combinées avec les opérateurs logiques au niveau du bit, afin que la State propriété puisse exprimer plusieurs états à la fois. Par exemple, un DataGridViewElement peut être simultanément Frozen, Selectedet Visible.

Cellules et bandes

Le DataGridView contrôle comprend deux types fondamentaux d’objets : les cellules et les bandes. Toutes les cellules dérivent de la DataGridViewCell classe de base. Les deux types de bandes, DataGridViewColumn et DataGridViewRow, dérivent tous deux de la classe de base DataGridViewBand.

Le DataGridView contrôle interopére avec plusieurs classes, mais les plus couramment rencontrés sont 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 est souvent effectuée par le biais de cellules. Vous pouvez accéder aux cellules à l’aide de la Cells collection de la DataGridViewRow classe, et vous pouvez accéder aux cellules sélectionnées à l’aide de la SelectedCells collection du DataGridView contrôle. Le modèle objet suivant illustre cette utilisation et montre la DataGridViewCell hiérarchie d’héritage.

Diagramme montrant la hiérarchie du modèle objet DataGridViewCell.

Le DataGridViewCell type est une classe de base abstraite à partir 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 hébergent certains contrôles Windows Forms. Toutes les fonctionnalités d’édition prises en charge par une cellule sont généralement gérées par un contrôle hébergé.

DataGridViewCell les objets ne contrôlent pas leurs propres caractéristiques d’apparence et de peinture de la même façon que les contrôles Windows Forms. Au contraire, le DataGridView est responsable de l'apparence de ses objets DataGridViewCell. Vous pouvez affecter considérablement l’apparence et le comportement des cellules en interagissant avec les DataGridView propriétés et les événements du contrôle. Lorsque vous avez des exigences particulières pour les personnalisations qui dépassent les capacités du DataGridView composant, vous pouvez implémenter votre propre classe dérivant de DataGridViewCell ou de l'une de ses classes enfants.

La liste suivante montre les classes dérivées de DataGridViewCell:

DataGridViewColumn

Le schéma du magasin de données attaché au contrôle DataGridView est exprimé par les colonnes du contrôle DataGridView. Vous pouvez accéder aux colonnes du contrôle DataGridView via la collection Columns. Vous pouvez accéder aux colonnes sélectionnées à l’aide de la SelectedColumns collection. Le modèle objet suivant illustre cette utilisation et montre la DataGridViewColumn hiérarchie d’héritage.

Diagramme montrant la hiérarchie du modèle objet DataGridViewColumn.

Certains types de cellules clés ont des types de colonnes correspondants. Ceux-ci sont dérivés de la DataGridViewColumn classe de base.

La liste suivante montre les classes dérivées de DataGridViewColumn:

Contrôles d’édition DataGridView

Les cellules qui prennent en charge les fonctionnalités d’édition avancées utilisent généralement un contrôle hébergé 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.

Diagramme montrant la hiérarchie du modèle objet de contrôle d’édition DataGridView.

Les commandes d'édition suivantes sont fournies avec le contrôle DataGridView :

Pour plus d’informations sur la création de vos propres contrôles d’édition, consultez How to : Host Controls in Windows Forms DataGridView Cells.

Le tableau suivant illustre la relation entre les types de cellules, les types de colonnes 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 DataGridViewRow classe affiche les champs de données d’un enregistrement à partir du magasin de données auquel le DataGridView contrôle est attaché. Vous pouvez accéder aux lignes du DataGridView contrôle à l’aide de la collection Rows. Vous pouvez accéder aux lignes sélectionnées à l’aide de la SelectedRows collection. Le modèle objet suivant illustre cette utilisation et montre la DataGridViewRow hiérarchie d’héritage.

Diagramme montrant la hiérarchie du modèle objet DataGridViewRow.

Vous pouvez dériver vos propres types de la DataGridViewRow classe, bien que cela ne soit généralement pas nécessaire. Le DataGridView contrôle a plusieurs événements et propriétés liés aux lignes afin de personnaliser le comportement de ses objets DataGridViewRow.

Si vous activez la DataGridView propriété du AllowUserToAddRows contrôle, une ligne spéciale pour l’ajout de nouvelles lignes apparaît comme la dernière ligne. Cette ligne fait partie de la Rows collection, mais elle a des fonctionnalités spéciales qui peuvent nécessiter votre attention. Pour plus d’informations, consultez Utiliser la ligne pour les nouveaux enregistrements dans le contrôle DataGridView de Windows Forms.

Voir aussi