Backcolor d'un item de combobox

Résolu
Zachs Messages postés 202 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 10 février 2009 - 8 août 2007 à 16:28
Zachs Messages postés 202 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 10 février 2009 - 9 août 2007 à 15:44
Bonjour, j'aimerai mettre, pour chaque item de ma combobox, une couleur differentes. Est-ce qu'il y aurait une solution.

Enfait ma liste deroulante contient des etats, et a chaque etatt correspont une couleur donc si on change d'etat la couleur de la fenetre change mais j'aimerai que lon vois un aprecu de la couleur dans la liste.

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!

23 réponses

Utilisateur anonyme
9 août 2007 à 12:30
Voilà, ce ne fut pas long.

Il faudra remplacer dans le designer le System.Windows.Forms.DataGridViewComboBoxColumn par un DataGridViewComboBoxColumnPerso pour la colonne de ta listview.





Public Class DataGridViewComboBoxColumnPerso
  Inherits System.Windows.Forms.DataGridViewComboBoxColumn

  Public Sub New()
    MyBase.CellTemplate = New DataGridViewComboBoxCellPerso()
  End Sub
End Class

Public Class DataGridViewComboBoxCellPerso
  Inherits System.Windows.Forms.DataGridViewComboBoxCell

  Public Overrides ReadOnly Property EditType() As System.Type
    Get
      Return GetType(DataGridViewComboBoxEditingControlPerso)
    End Get
  End Property
End Class

Public Class DataGridViewComboBoxEditingControlPerso
  Inherits System.Windows.Forms.DataGridViewComboBoxEditingControl

  Public Sub New()
    MyBase.DrawMode = Windows.Forms.DrawMode.OwnerDrawFixed
    MyBase.DropDownStyle = ComboBoxStyle.DropDownList
  End Sub

  Protected Overrides Sub OnDrawItem(ByVal e As System.Windows.Forms.DrawItemEventArgs)
    ' Dessin ici
    MyBase.OnDrawItem(e)
  End Sub
End Class,

----

(Nouveau forum VBA/Office
3
Utilisateur anonyme
8 août 2007 à 18:20
Salut,

Il faut que tu le retravaille en OverDraw.
Voir ma source sur la checklistbox. C'est le même principe.







__________
Kenji

(


Nouveau forum VBA/Office
0
Zachs Messages postés 202 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 10 février 2009
9 août 2007 à 09:14
Ok je vais voir

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
0
Zachs Messages postés 202 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 10 février 2009
9 août 2007 à 09:41
Il n'y a pas d'OverDraw dans ta source?! et j'ai essayer "Dim FI As New ComboBox." et la il me trouve rien par rapport au items même avec une listbox

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
9 août 2007 à 11:55
Ha oui, c'est DrawMode. OwerDraw c'était pour les boutons ^^
Ca donne un truc de ce genre :



Public Class ComboBoxPerso
  Inherits System.Windows.Forms.ComboBox

  Public Sub New()
    MyBase.DrawMode = Windows.Forms.DrawMode.OwnerDrawFixed

  End Sub

  Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
    ' Dessin ici
    MyBase.OnPaint(e)
  End Sub

End Class,

----

(Nouveau forum VBA/Office
0
Zachs Messages postés 202 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 10 février 2009
9 août 2007 à 12:01
Tu vas pas aimer mais j'ai oublier de preciser que c'est dans une datagridview la combobox. Enfait c'est un champ de type combobox. Donc je ne c'est pas si ca va jouer

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
0
Utilisateur anonyme
9 août 2007 à 12:13
Hum, un petit défit. Je vais voir ce que je peux faire.







__________
Kenji

(


Nouveau forum VBA/Office
0
Zachs Messages postés 202 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 10 février 2009
9 août 2007 à 13:13
Quand je change dans le designer il me dit de remettre "DataGridViewComboBoxColumn". Et sinon tu pourrai un peu m'expliquer les commandes si tu as la temp et que ca ne tembete pas

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
0
Utilisateur anonyme
9 août 2007 à 13:41
Tu as bien changer les bonnes choses ?

Tu as juste a changer un
Me.Column1 = New System.Windows.Forms.DataGridViewComboBoxColumn()
par un
Me.Column1 = New DataGridViewComboBoxColumnPerso()





__________
Kenji

(


Nouveau forum VBA/Office
0
Zachs Messages postés 202 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 10 février 2009
9 août 2007 à 13:47
Oui

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
0
Utilisateur anonyme
9 août 2007 à 13:54
Donne des détails alors.
Y'a pas de raisons que ca fonctionne chez moi et pas chez toi.







__________
Kenji

(


Nouveau forum VBA/Office
0
Zachs Messages postés 202 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 10 février 2009
9 août 2007 à 14:12
J'ai mis "Me.Status = New System.Windows.Forms.DataGridViewComboBoxColumnPerso" et après il me mettait " Type System.Windows.Forms.DataGridViewComboBoxColumnPerso is not defined. Change System.Windows.Forms.DataGridViewComboBoxColumnPerso to System.Windows.Forms.DataGridViewComboBoxColumn"

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
0
Utilisateur anonyme
9 août 2007 à 14:15
DataGridViewComboBoxColumnPerso ne fait pas partis de System.Windows.Forms a ce que je sache.
Donc tout est normale.
Me.Status = New <strike>System.Windows.Forms</strike>.DataGridViewComboBoxColumnPerso







__________
Kenji

(


Nouveau forum VBA/Office
0
Zachs Messages postés 202 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 10 février 2009
9 août 2007 à 14:19
J'ai enlevé le System.Windows.Forms il me met toujours la même erreur

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
0
Utilisateur anonyme
9 août 2007 à 14:23
Danc ce cas, tu met l'espace de nom complet.
NomDeTonApplication.DataGridViewComboBoxColumnPerso
ou NomDeTonApplication.NomNamespace.DataGridViewComboBoxColumnPerso







__________
Kenji

(


Nouveau forum VBA/Office
0
Zachs Messages postés 202 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 10 février 2009
9 août 2007 à 14:33
Idem

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
0
Utilisateur anonyme
9 août 2007 à 14:53
T'as mis le code des classes ?







__________
Kenji

(


Nouveau forum VBA/Office
0
Zachs Messages postés 202 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 10 février 2009
9 août 2007 à 15:31
C'est bon ca fonctionne j'avais mal placé les classes

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
0
Zachs Messages postés 202 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 10 février 2009
9 août 2007 à 15:32
Maintenan je dois me basé sur ton sources des listbox?

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
0
Utilisateur anonyme
9 août 2007 à 15:36
Oui c'est le même principe.
Tu dois peindre la couleur de fond et dessiner le texte.







__________
Kenji

(


Nouveau forum VBA/Office
0
Rejoignez-nous