Remplir DataGridViewComboBoxColumn

Signaler
Messages postés
48
Date d'inscription
mercredi 21 mai 2014
Statut
Membre
Dernière intervention
30 mai 2018
-
Messages postés
48
Date d'inscription
mercredi 21 mai 2014
Statut
Membre
Dernière intervention
30 mai 2018
-
Bonjour,
J'ai une colonne de type DataGridViewComboBoxColumn que je dois remplir en fonction de chaque ligne avec différentes valeurs.
Si j'utilise l'instruction ci-dessous la colonne entière prend les mêmes valeurs.
column.Items.AddRange("","")


Merci d'avance.

1 réponse

Messages postés
6930
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
25 septembre 2020
112
Bonjour,

Pour ajouter une DataGridViewComboBoxColumn:

  Dim cmb As New DataGridViewComboBoxColumn
        'On attribut un titre a la colonne
        cmb.HeaderText = "Couleur préférée"

        'La propriété DisplayStyle sert à définir comment cette colonne apparaitra : 
        ' + ComboBox dont les element est modifiable,
        ' + DropDownButton qui est un combobox dont les elements ne sont pas modifiables,
        ' + Nothing pour que cette colonne apparaitra comme un TextBox.
        cmb.DisplayStyle = DataGridViewComboBoxDisplayStyle.ComboBox

        'Cette ligne applique le DisplayStyle sur la cellule actuelle si elle est TRUE,
        'ou sur toutes les cellules de la colonne si elle est FALSE
        cmb.DisplayStyleForCurrentCellOnly = True

        'On définie la source de données du notre DataGridViewComboBoxColumn
        'qui est une collection des couleurs.
        cmb.Items.AddRange(Color.Red, Color.Yellow, Color.Green, Color.Blue)
        cmb.ValueType = GetType(Color)
        'On ajoute simplement notre colonne au DataGridView
       Me.DataGridView1.Columns.Add(cmb)


Pour changer la liste du Combobox:

 Dim Dgvc As New DataGridViewComboBoxCell
        Dgvc.Items.AddRange("Mr.", "Ms.", "Mrs.", "Dr.")
        Dgvc.ValueType = GetType(String)
        DataGridView1.Item(5, 4) = Dgvc '5 n°colonne , 4 n° ligne


Voilà



Messages postés
48
Date d'inscription
mercredi 21 mai 2014
Statut
Membre
Dernière intervention
30 mai 2018
>
Messages postés
14784
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
27 septembre 2020

Bonjour,
Les données sont affichées dans le datagrid mais les valeurs des cellules ne changent pas.
Messages postés
14784
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
27 septembre 2020
437
Bonjour
Plus haut tu parles de Datagridview et là de Datagrid, ce ne sont pas les mêmes contrôles.

Après je ne comprends pas ce que tu veux dire par « les données sont affichées mais les valeurs ne changent pas »
Messages postés
48
Date d'inscription
mercredi 21 mai 2014
Statut
Membre
Dernière intervention
30 mai 2018
>
Messages postés
14784
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
27 septembre 2020

Je m'excuse, je voulais dire datagridview. Quand j'ai mis le code dans un bouton et j'ai appelé l'événement du click dans Shown, les données venant de la requête sont affichées mais pour la colonne DataGridViewComboBoxColumn que j'ai ajouté , j'ai les mêmes valeurs initiales: Red, Yellow, Green, Blue

voici le code:
 adapter = New SqlDataAdapter("select Ordre,Titre,type from TPTVA order by ordre", cn)
table = New DataTable
adapter.Fill(table)
DataGridView2.DataSource = Nothing
DataGridView2.DataSource = table
Dim cmb As New DataGridViewComboBoxColumn
cmb.HeaderText = "Couleur préférée"
cmb.DisplayStyle = DataGridViewComboBoxDisplayStyle.ComboBox
cmb.DisplayStyleForCurrentCellOnly = True
cmb.Items.AddRange(Color.Red, Color.Yellow, Color.Green, Color.Blue)
cmb.ValueType = GetType(Color)
Me.DataGridView2.Columns.Add(cmb)
Dim Dgvc As New DataGridViewComboBoxCell
Dgvc.Items.AddRange("Mr.", "Ms.", "Mrs.", "Dr.")
Dgvc.ValueType = GetType(String)
DataGridView2.Item(3, 1) = Dgvc
Messages postés
14784
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
27 septembre 2020
437 >
Messages postés
48
Date d'inscription
mercredi 21 mai 2014
Statut
Membre
Dernière intervention
30 mai 2018

Je ne sais pas si les cellules d'une même colonne peuvent avoir des dropdownlist différentes en Winform.
En plus tu bindes ton datatable et ensuite tu modifies le format de la grille, c'est pas très sein.
Faut que je fasse des tests.
Messages postés
48
Date d'inscription
mercredi 21 mai 2014
Statut
Membre
Dernière intervention
30 mai 2018
>
Messages postés
14784
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
27 septembre 2020

Bonjour,
Je vais essayer de ne pas utiliser une requête pour l'affichage des 3 premières colonnes.
Merci beaucoup pour l'aide.