vercomax
Messages postés547Date d'inscriptionmercredi 28 juillet 2004StatutMembreDernière intervention11 septembre 2013
-
31 janv. 2013 à 09:22
Pascalnasena -
12 janv. 2018 à 16:06
Bonjour,
J'aimerai changer le type d'une colonne datagridview texte en datagridview combobox par le code. Ce combo serait alimenté par une datatable.
Je précise que je sait le faire en insérant une nouvelle colonne et je mets bien à jour mon datagridview; J'ai donc 2 colonnes.
J'aimerai en avoir qu'une.
vercomax
Messages postés547Date d'inscriptionmercredi 28 juillet 2004StatutMembreDernière intervention11 septembre 20132 1 févr. 2013 à 10:44
Oui, c'est bien çà, j'utilise une DataGridViewComboBoxCell que je rempli avec un datatable :
Dim cmb As New DataGridViewComboBoxCell
cmb.DataSource = recupere_donnees_table("voltages", "voltage")
cmb.DisplayMember = "voltage"
cmb.ValueMember = "voltage"
grille_catrefsa.Rows(x).Cells(y) = cmb
Private Function recupere_donnees_table(table As String, champ As String)
Try
Dim sqlcommand As String = ("SELECT DISTINCT " & champ & " FROM " & table & " ORDER BY " & champ & " ASC")
Dim i_catrefs As New MySqlConnection(connStr)
i_catrefs.Open()
Dim command As New MySqlCommand(sqlcommand, i_catrefs)
Dim adapter As New MySqlDataAdapter()
adapter.SelectCommand = command
Dim i_table As New DataTable()
adapter.Fill(i_table)
i_catrefs.Close()
Return i_table
Catch ex As Exception
MsgBox(ex.Message)
End Try
Return ""
End Function
La propriété ColumnType est une propriété de moment de design uniquement qui indique la classe qui représente le type de colonne. Il ne s'agit pas d'une propriété réelle définie dans une classe de colonne.
Le moyen le plus simple est donc de supprimer la colonne et d'en recréer une du type souhaité et de la peupler avec tes données converties.
vercomax
Messages postés547Date d'inscriptionmercredi 28 juillet 2004StatutMembreDernière intervention11 septembre 20132 31 janv. 2013 à 21:13
Merci banana32,
J'ai certainement trouvé la solution en utilisant datagridviewcomboboxcell. En faisant apparaitre un combo directement dans la cellule cliquée pour éviter d'avoir une colonne remplie de combo, c'est plus joli ;)
Je vous tiens au jus.