Types de colonnes dans le contrôle DataGridView Windows Forms

Le DataGridView contrôle utilise plusieurs types de colonnes pour afficher ses informations et permettre aux utilisateurs de modifier ou d’ajouter des informations.

Lorsque vous liez un DataGridView contrôle et définissez la AutoGenerateColumns propriété truesur , les colonnes sont générées automatiquement à l’aide de types de colonnes par défaut appropriés pour les types de données contenus dans la source de données liée.

Vous pouvez également créer des instances de l’une des classes de colonne vous-même et les ajouter à la collection retournée par la Columns propriété. Vous pouvez créer ces instances à utiliser comme colonnes indépendantes, ou vous pouvez les lier manuellement. Les colonnes liées manuellement sont utiles, par exemple, lorsque vous souhaitez remplacer une colonne générée automatiquement d’un type par une colonne d’un autre type.

Le tableau suivant décrit les différentes classes de colonnes disponibles pour une utilisation dans le DataGridView contrôle.

Classe Description
DataGridViewTextBoxColumn Utilisé avec des valeurs textuelles. Généré automatiquement lors de la liaison à des nombres et des chaînes.
DataGridViewCheckBoxColumn Utilisé avec Boolean et CheckState valeurs. Généré automatiquement lors de la liaison à des valeurs de ces types.
DataGridViewImageColumn Permet d’afficher des images. Généré automatiquement lors de la liaison à des tableaux d’octets, Image des objets ou Icon des objets.
DataGridViewButtonColumn Permet d’afficher des boutons dans les cellules. Non généré automatiquement lors de la liaison. Généralement utilisé comme colonnes indépendantes.
DataGridViewComboBoxColumn Permet d’afficher des listes déroulantes dans des cellules. Non généré automatiquement lors de la liaison. Généralement lié aux données manuellement.
DataGridViewLinkColumn Permet d’afficher des liens dans des cellules. Non généré automatiquement lors de la liaison. Généralement lié aux données manuellement.
Type de colonne personnalisé Vous pouvez créer votre propre classe de colonne en hériter la DataGridViewColumn classe ou l’une de ses classes dérivées pour fournir une apparence, un comportement ou des contrôles hébergés personnalisés. Pour plus d’informations, consultez Comment : personnaliser des cellules et des colonnes dans le contrôle DataGridView Windows Forms en étendant leur comportement et leur apparence

Ces types de colonnes sont décrits plus en détail dans les sections suivantes.

DataGridViewTextBoxColumn

Il DataGridViewTextBoxColumn s’agit d’un type de colonne à usage général à utiliser avec des valeurs textuelles telles que des nombres et des chaînes. En mode édition, un TextBox contrôle s’affiche dans la cellule active, ce qui permet aux utilisateurs de modifier la valeur de la cellule.

Les valeurs de cellule sont automatiquement converties en chaînes pour l’affichage. Les valeurs entrées ou modifiées par l’utilisateur sont automatiquement analysées pour créer une valeur de cellule du type de données approprié. Vous pouvez personnaliser ces conversions en gérant les événements et CellParsing les CellFormatting événements du DataGridView contrôle.

Le type de données de valeur de cellule d’une colonne est spécifié dans la ValueType propriété de la colonne.

DataGridViewCheckBoxColumn

Il DataGridViewCheckBoxColumn est utilisé avec Boolean et CheckState avec des valeurs. Booleanles valeurs s’affichent sous forme de zones de case activée à deux états ou à trois états, selon la valeur de la ThreeState propriété. Lorsque la colonne est liée à des CheckState valeurs, la ThreeState valeur de propriété est true par défaut.

En règle générale, case activée valeurs de cellule box sont destinées au stockage, comme n’importe quelle autre donnée, ou à l’exécution d’opérations en bloc. Si vous souhaitez répondre immédiatement lorsque les utilisateurs cliquent sur une cellule de zone de case activée, vous pouvez gérer l’événementCellClick, mais cet événement se produit avant la mise à jour de la valeur de la cellule. Si vous avez besoin de la nouvelle valeur au moment du clic, une option consiste à calculer la valeur attendue en fonction de la valeur actuelle. Une autre approche consiste à valider immédiatement la modification et à gérer l’événement CellValueChanged pour y répondre. Pour valider la modification lorsque la cellule est cliquée, vous devez gérer l’événement CurrentCellDirtyStateChanged . Dans le gestionnaire, si la cellule active est une cellule case activée, appelez la CommitEdit méthode et transmettez la Commit valeur.

DataGridViewImageColumn

Il DataGridViewImageColumn est utilisé pour afficher des images. Les colonnes d’image peuvent être remplies automatiquement à partir d’une source de données, renseignées manuellement pour les colonnes indépendantes ou renseignées dynamiquement dans un gestionnaire pour l’événement CellFormatting .

La population automatique d’une colonne d’image à partir d’une source de données fonctionne avec des tableaux d’octets dans divers formats d’image, y compris tous les formats pris en charge par la Image classe et le format OLE Picture utilisé par Microsoft® Access et l’exemple de base de données Northwind.

Remplir une colonne d’image manuellement est utile lorsque vous souhaitez fournir les fonctionnalités d’un DataGridViewButtonColumn, mais avec une apparence personnalisée. Vous pouvez gérer l’événement DataGridView.CellClick pour répondre aux clics dans une cellule d’image.

Le remplissage des cellules d’une colonne d’image dans un gestionnaire pour l’événement CellFormatting est utile lorsque vous souhaitez fournir des images pour des valeurs calculées ou des valeurs dans des formats non-image. Par exemple, vous pouvez avoir une colonne « Risque » avec des valeurs de chaîne telles que "high", "middle"et "low" que vous souhaitez afficher en tant qu’icônes. Vous pouvez également avoir une colonne « Image » qui contient les emplacements des images qui doivent être chargées plutôt que le contenu binaire des images.

DataGridViewButtonColumn

Avec le DataGridViewButtonColumn, vous pouvez afficher une colonne de cellules qui contiennent des boutons. Cela est utile lorsque vous souhaitez fournir un moyen simple à vos utilisateurs d’effectuer des actions sur des enregistrements particuliers, telles que le placement d’une commande ou l’affichage d’enregistrements enfants dans une fenêtre distincte.

Les colonnes de bouton ne sont pas générées automatiquement lors de la liaison de données d’un DataGridView contrôle. Pour utiliser des colonnes de bouton, vous devez les créer manuellement et les ajouter à la collection retournée par la DataGridView.Columns propriété.

Vous pouvez répondre aux clics utilisateur dans les cellules de bouton en gérant l’événement DataGridView.CellClick .

DataGridViewComboBoxColumn

Avec le DataGridViewComboBoxColumn, vous pouvez afficher une colonne de cellules qui contiennent des zones de liste déroulante. Cela est utile pour l’entrée de données dans les champs qui ne peuvent contenir que des valeurs particulières, telles que la colonne Catégorie de la table Products dans l’exemple de base de données Northwind.

Vous pouvez remplir la liste déroulante utilisée pour toutes les cellules de la même façon que vous remplissez une ComboBox liste déroulante, soit manuellement via la collection retournée par la Items propriété, soit en la liant à une source de données via le DataSource, DisplayMemberet ValueMember les propriétés. Pour plus d’informations, consultez ComboBox Control.

Vous pouvez lier les valeurs de cellule réelles à la source de données utilisée par le DataGridView contrôle en définissant la DataPropertyName propriété du System.Windows.Forms.DataGridViewComboBoxColumn.

Les colonnes de zone de liste modifiable ne sont pas générées automatiquement lors de la liaison de données d’un DataGridView contrôle. Pour utiliser des colonnes de zone de liste modifiable, vous devez les créer manuellement et les ajouter à la collection retournée par la Columns propriété.

DataGridViewLinkColumn

Avec le DataGridViewLinkColumn, vous pouvez afficher une colonne de cellules qui contiennent des liens hypertexte. Cela est utile pour les valeurs d’URL dans la source de données ou comme alternative à la colonne de bouton pour des comportements spéciaux tels que l’ouverture d’une fenêtre avec des enregistrements enfants.

Les colonnes de liaison ne sont pas générées automatiquement lors de la liaison de données d’un DataGridView contrôle. Pour utiliser des colonnes de lien, vous devez les créer manuellement et les ajouter à la collection retournée par la Columns propriété.

Vous pouvez répondre aux clics utilisateur sur des liens en gérant l’événement CellContentClick . Cet événement est distinct des CellClick événements qui CellMouseClick se produisent lorsqu’un utilisateur clique n’importe où dans une cellule.

La DataGridViewLinkColumn classe fournit plusieurs propriétés pour modifier l’apparence des liens avant, pendant et après qu’elles soient cliquées.

Voir aussi