Remplir DataGridViewComboBoxColumn

hanadakia
Messages postés
48
Date d'inscription
mercredi 21 mai 2014
Dernière intervention
30 mai 2018
- 27 avril 2018 à 17:41 - Dernière réponse : hanadakia
Messages postés
48
Date d'inscription
mercredi 21 mai 2014
Dernière intervention
30 mai 2018
- 3 mai 2018 à 10:41
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.
Afficher la suite 

Votre réponse

16 réponses

cs_Le Pivert
Messages postés
5520
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 novembre 2018
- Modifié par cs_Le Pivert le 27/04/2018 à 18:22
0
Merci
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à



hanadakia
Messages postés
48
Date d'inscription
mercredi 21 mai 2014
Dernière intervention
30 mai 2018
> Whismeril
Messages postés
12238
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 novembre 2018
- 2 mai 2018 à 11:24
Bonjour,
Les données sont affichées dans le datagrid mais les valeurs des cellules ne changent pas.
Whismeril
Messages postés
12238
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 novembre 2018
- 2 mai 2018 à 16:22
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 »
hanadakia
Messages postés
48
Date d'inscription
mercredi 21 mai 2014
Dernière intervention
30 mai 2018
> Whismeril
Messages postés
12238
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 novembre 2018
- 2 mai 2018 à 16:43
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
Whismeril
Messages postés
12238
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 novembre 2018
> hanadakia
Messages postés
48
Date d'inscription
mercredi 21 mai 2014
Dernière intervention
30 mai 2018
- 2 mai 2018 à 20:02
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.
hanadakia
Messages postés
48
Date d'inscription
mercredi 21 mai 2014
Dernière intervention
30 mai 2018
> Whismeril
Messages postés
12238
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 novembre 2018
- 3 mai 2018 à 10:41
Bonjour,
Je vais essayer de ne pas utiliser une requête pour l'affichage des 3 premières colonnes.
Merci beaucoup pour l'aide.
Commenter la réponse de cs_Le Pivert

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.