Backcolor d'un item de combobox [Résolu]

Signaler
Messages postés
202
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
10 février 2009
-
Messages postés
202
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
10 février 2009
-
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!
A voir également:

23 réponses

Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
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
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
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
Messages postés
202
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
10 février 2009

Ok je vais voir

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
Messages postés
202
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
10 février 2009

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!
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
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
Messages postés
202
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
10 février 2009

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!
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
Hum, un petit défit. Je vais voir ce que je peux faire.







__________
Kenji

(


Nouveau forum VBA/Office
Messages postés
202
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
10 février 2009

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!
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
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
Messages postés
202
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
10 février 2009

Oui

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
Donne des détails alors.
Y'a pas de raisons que ca fonctionne chez moi et pas chez toi.







__________
Kenji

(


Nouveau forum VBA/Office
Messages postés
202
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
10 février 2009

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!
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
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
Messages postés
202
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
10 février 2009

J'ai enlevé le System.Windows.Forms il me met toujours la même erreur

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
Danc ce cas, tu met l'espace de nom complet.
NomDeTonApplication.DataGridViewComboBoxColumnPerso
ou NomDeTonApplication.NomNamespace.DataGridViewComboBoxColumnPerso







__________
Kenji

(


Nouveau forum VBA/Office
Messages postés
202
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
10 février 2009

Idem

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
T'as mis le code des classes ?







__________
Kenji

(


Nouveau forum VBA/Office
Messages postés
202
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
10 février 2009

C'est bon ca fonctionne j'avais mal placé les classes

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
Messages postés
202
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
10 février 2009

Maintenan je dois me basé sur ton sources des listbox?

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
Oui c'est le même principe.
Tu dois peindre la couleur de fond et dessiner le texte.







__________
Kenji

(


Nouveau forum VBA/Office