Architecture du 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 .

Diagram that shows the DataGridViewElement Object Model hierarchy.

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 DataGridView classes compagnons.

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 etDataGridViewRow, DataGridViewColumn tous deux dérivent de la DataGridViewBand classe de base.

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.

Diagram that shows the DataGridViewCell Object Model hierarchy.

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 certains contrôles Windows Forms hôtes. 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 lieu de cela, il DataGridView est responsable de l’apparence de ses DataGridViewCell objets. 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 fonctionnalités du DataGridView contrôle, vous pouvez implémenter votre propre classe qui dérive de ou de DataGridViewCell l’une de ses classes enfants.

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

Datagridviewcolumn

Le schéma du DataGridView magasin de données attaché du contrôle est exprimé dans les DataGridView colonnes du contrôle. Vous pouvez accéder aux DataGridView colonnes du contrôle à l’aide de la Columns collection. 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.

Diagram that shows the DataGridViewColumn Object Model hierarchy.

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.

Diagram showing the DataGridView Editing Control Object Model hierarchy.

Les contrôles d’édition suivants sont fournis avec le DataGridView contrôle :

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 DataGridView lignes du contrôle à l’aide de la Rows collection. 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.

Diagram that shows the DataGridViewRow Object Model hierarchy.

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 pour personnaliser le comportement de ses DataGridViewRow objets.

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 Utilisation de la ligne pour les nouveaux enregistrements dans le contrôle DataGridView Windows Forms.

Voir aussi