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

Messages postés
202
Date d'inscription
mardi 14 novembre 2006
Dernière intervention
10 février 2009
- - Dernière réponse : Zachs
Messages postés
202
Date d'inscription
mardi 14 novembre 2006
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!
Afficher la suite 

Votre réponse

20/23 réponses

Meilleure réponse
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Dernière intervention
9 avril 2017
35
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 115 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Charles Racaud
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Dernière intervention
9 avril 2017
35
0
Merci
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
Commenter la réponse de Charles Racaud
Messages postés
202
Date d'inscription
mardi 14 novembre 2006
Dernière intervention
10 février 2009
0
Merci
Ok je vais voir

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
Commenter la réponse de Zachs
Messages postés
202
Date d'inscription
mardi 14 novembre 2006
Dernière intervention
10 février 2009
0
Merci
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!
Commenter la réponse de Zachs
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Dernière intervention
9 avril 2017
35
0
Merci
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
Commenter la réponse de Charles Racaud
Messages postés
202
Date d'inscription
mardi 14 novembre 2006
Dernière intervention
10 février 2009
0
Merci
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!
Commenter la réponse de Zachs
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Dernière intervention
9 avril 2017
35
0
Merci
Hum, un petit défit. Je vais voir ce que je peux faire.







__________
Kenji

(


Nouveau forum VBA/Office
Commenter la réponse de Charles Racaud
Messages postés
202
Date d'inscription
mardi 14 novembre 2006
Dernière intervention
10 février 2009
0
Merci
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!
Commenter la réponse de Zachs
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Dernière intervention
9 avril 2017
35
0
Merci
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
Commenter la réponse de Charles Racaud
Messages postés
202
Date d'inscription
mardi 14 novembre 2006
Dernière intervention
10 février 2009
0
Merci
Oui

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
Commenter la réponse de Zachs
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Dernière intervention
9 avril 2017
35
0
Merci
Donne des détails alors.
Y'a pas de raisons que ca fonctionne chez moi et pas chez toi.







__________
Kenji

(


Nouveau forum VBA/Office
Commenter la réponse de Charles Racaud
Messages postés
202
Date d'inscription
mardi 14 novembre 2006
Dernière intervention
10 février 2009
0
Merci
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!
Commenter la réponse de Zachs
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Dernière intervention
9 avril 2017
35
0
Merci
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
Commenter la réponse de Charles Racaud
Messages postés
202
Date d'inscription
mardi 14 novembre 2006
Dernière intervention
10 février 2009
0
Merci
J'ai enlevé le System.Windows.Forms il me met toujours la même erreur

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
Commenter la réponse de Zachs
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Dernière intervention
9 avril 2017
35
0
Merci
Danc ce cas, tu met l'espace de nom complet.
NomDeTonApplication.DataGridViewComboBoxColumnPerso
ou NomDeTonApplication.NomNamespace.DataGridViewComboBoxColumnPerso







__________
Kenji

(


Nouveau forum VBA/Office
Commenter la réponse de Charles Racaud
Messages postés
202
Date d'inscription
mardi 14 novembre 2006
Dernière intervention
10 février 2009
0
Merci
Idem

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
Commenter la réponse de Zachs
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Dernière intervention
9 avril 2017
35
0
Merci
T'as mis le code des classes ?







__________
Kenji

(


Nouveau forum VBA/Office
Commenter la réponse de Charles Racaud
Messages postés
202
Date d'inscription
mardi 14 novembre 2006
Dernière intervention
10 février 2009
0
Merci
C'est bon ca fonctionne j'avais mal placé les classes

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
Commenter la réponse de Zachs
Messages postés
202
Date d'inscription
mardi 14 novembre 2006
Dernière intervention
10 février 2009
0
Merci
Maintenan je dois me basé sur ton sources des listbox?

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







__________
Kenji

(


Nouveau forum VBA/Office
Commenter la réponse de Charles Racaud

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.