Salut,
J'ai récemment eu besoin de faire une colonne "color picker" dans une datagridview , et faute de contrôle adapté, j'ai écrit un petit code pour le simuler. Ci dessous une solution qui pourra servir à d'autre (peut etre y a t il plus simple par contre).
# préparation:
- créer/ajouter une datagridview (bien sûr - dragdrop sur le form depuis la Toolbox)
- créer/ajouter une datagridviewcolumn (en éditant la columns collection de la datagridview, dans propriétés; n'importe quel type fonctionne, mais les DataGridViewButtonColumn, DataGridViewComboBoxColumn me semble avoir le meilleur rendu.)
- créer/ajouter un ColorDialog(dragdrop sur le form depuis la Toolbox)
#code
L'idée est d'intercepter l'événement click ou doubleclick sur la grille et de faire afficher le ColorDialog:
--Voilà
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Private Sub DG_CellDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles datagridview1.CellDoubleClick If e.columnIndex = MyColorColumn.Index 'execute seulement si l'utilisateur click dans la bonne colonne Dim MyCell As datagridviewcell = datagridview1.rows.item(e.rowindex).cells.item(e.Columnindex) 'recupère la cellule clickée ColorDialog1.ShowDialog() 'il faudrait ajouter une vérification du résultat du colordialog si l'utilisateur annule MyCell.Style.BackColor = ColorDialog1.Color MyCell.Style.SelectionBackColor = ColorDialog1.Color 'optionel End If End Sub
zebrette
Partager