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

Zachs 202 Messages postés mardi 14 novembre 2006Date d'inscription 10 février 2009 Dernière intervention - 8 août 2007 à 16:28 - Dernière réponse : Zachs 202 Messages postés mardi 14 novembre 2006Date d'inscription 10 février 2009 Dernière intervention
- 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 

23 réponses

Répondre au sujet
Charles Racaud 3181 Messages postés dimanche 15 février 2004Date d'inscription 9 avril 2017 Dernière intervention - 9 août 2007 à 12:30
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Charles Racaud
Charles Racaud 3181 Messages postés dimanche 15 février 2004Date d'inscription 9 avril 2017 Dernière intervention - 8 août 2007 à 18:20
0
Utile
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
Zachs 202 Messages postés mardi 14 novembre 2006Date d'inscription 10 février 2009 Dernière intervention - 9 août 2007 à 09:14
0
Utile
Ok je vais voir

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
Commenter la réponse de Zachs
Zachs 202 Messages postés mardi 14 novembre 2006Date d'inscription 10 février 2009 Dernière intervention - 9 août 2007 à 09:41
0
Utile
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
Charles Racaud 3181 Messages postés dimanche 15 février 2004Date d'inscription 9 avril 2017 Dernière intervention - 9 août 2007 à 11:55
0
Utile
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
Zachs 202 Messages postés mardi 14 novembre 2006Date d'inscription 10 février 2009 Dernière intervention - 9 août 2007 à 12:01
0
Utile
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
Charles Racaud 3181 Messages postés dimanche 15 février 2004Date d'inscription 9 avril 2017 Dernière intervention - 9 août 2007 à 12:13
0
Utile
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
Zachs 202 Messages postés mardi 14 novembre 2006Date d'inscription 10 février 2009 Dernière intervention - 9 août 2007 à 13:13
0
Utile
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
Charles Racaud 3181 Messages postés dimanche 15 février 2004Date d'inscription 9 avril 2017 Dernière intervention - 9 août 2007 à 13:41
0
Utile
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
Zachs 202 Messages postés mardi 14 novembre 2006Date d'inscription 10 février 2009 Dernière intervention - 9 août 2007 à 13:47
0
Utile
Oui

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
Commenter la réponse de Zachs
Charles Racaud 3181 Messages postés dimanche 15 février 2004Date d'inscription 9 avril 2017 Dernière intervention - 9 août 2007 à 13:54
0
Utile
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
Zachs 202 Messages postés mardi 14 novembre 2006Date d'inscription 10 février 2009 Dernière intervention - 9 août 2007 à 14:12
0
Utile
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
Charles Racaud 3181 Messages postés dimanche 15 février 2004Date d'inscription 9 avril 2017 Dernière intervention - 9 août 2007 à 14:15
0
Utile
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
Zachs 202 Messages postés mardi 14 novembre 2006Date d'inscription 10 février 2009 Dernière intervention - 9 août 2007 à 14:19
0
Utile
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
Charles Racaud 3181 Messages postés dimanche 15 février 2004Date d'inscription 9 avril 2017 Dernière intervention - 9 août 2007 à 14:23
0
Utile
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
Zachs 202 Messages postés mardi 14 novembre 2006Date d'inscription 10 février 2009 Dernière intervention - 9 août 2007 à 14:33
0
Utile
Idem

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
Commenter la réponse de Zachs
Charles Racaud 3181 Messages postés dimanche 15 février 2004Date d'inscription 9 avril 2017 Dernière intervention - 9 août 2007 à 14:53
0
Utile
T'as mis le code des classes ?







__________
Kenji

(


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

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

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
Commenter la réponse de Zachs
Charles Racaud 3181 Messages postés dimanche 15 février 2004Date d'inscription 9 avril 2017 Dernière intervention - 9 août 2007 à 15:36
0
Utile
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.

Backcolor d'un item de combobox - page 2