Affichage Formater D'une listeBOX

Messages postés
14
Date d'inscription
vendredi 15 février 2008
Statut
Membre
Dernière intervention
18 novembre 2012
- - Dernière réponse : cs_BinKentsu
Messages postés
66
Date d'inscription
jeudi 1 septembre 2011
Statut
Membre
Dernière intervention
22 juillet 2014
- 4 sept. 2012 à 14:14
Bonjour ,
Je développe une application c# winform. J'aimerai pourvoir dans une de mes fiches de saisie formater l'affichage des listes.
Par exemple dans une listeBox afficher tous les fruits en rouge et les légumes en vert.
Je recupère les infos depuis une bd et j'ai un champs bool qui m'indique si le cet élément est un fruit ou non.
Afficher la suite 

10 réponses

Messages postés
66
Date d'inscription
jeudi 1 septembre 2011
Statut
Membre
Dernière intervention
22 juillet 2014
6
0
Merci
Bonjour,

Ben en récupérant tes informations et en les ajoutant dans la listview, tu peux changer l'arrière plan de l'item par :
item.BackColor = System.Drawing.Color.LightGreen;

BinKentsu
Commenter la réponse de cs_BinKentsu
Messages postés
14
Date d'inscription
vendredi 15 février 2008
Statut
Membre
Dernière intervention
18 novembre 2012
0
Merci
foreach (Fruit f in Fruits)
            {

                if (f.legume)
                {
                    ListeFruit.Items.Add(f.nom);
ListeFruit.ForeColor = System.Drawing.Color.LightGreen;
                }
                else
                {
                    ListeFruit.Items.Add(f.nom);
ListeFruit.ForeColor = System.Drawing.Color.red;
                }
                    
            }

--> resultat tous les éléments de la liste sont en vert!
Commenter la réponse de Houbie87
Messages postés
66
Date d'inscription
jeudi 1 septembre 2011
Statut
Membre
Dernière intervention
22 juillet 2014
6
0
Merci
Non pas comme ça ^^
Je parle de cette façon :

foreach (Fruit f in Fruits)
{
   ListBoxItem item = new ListBoxItem();
   if (f.legume)
      item.BackColor = System.Drawing.Color.LightGreen;
   else
      item.BackColor = System.Drawing.Color.LightSalmon;

   item.Text = "ton fruit ou légume"
   listBox1.Items.Add(item);
}

BinKentsu
Commenter la réponse de cs_BinKentsu
Messages postés
14
Date d'inscription
vendredi 15 février 2008
Statut
Membre
Dernière intervention
18 novembre 2012
0
Merci
moi j'ai pas la ListBoxItem lol je ne comprend pas desolee
Commenter la réponse de Houbie87
Messages postés
13970
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
14 novembre 2019
319
0
Merci
Bonjour de cette façon tu colores le contrôle entier.
La couleur est donc la dernière appliquée. Le dernier item de ta liste est donc un légume.

Avec une ListBox il faut utiliser l'évènement Paint, mais apparemment il n'existe pas pour uen ListView


Whismeril
Commenter la réponse de Whismeril
Messages postés
13970
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
14 novembre 2019
319
0
Merci
peut-être en héritant d'une listview et en réécrivant OnPaint.

        protected override void OnPaint(PaintEventArgs e)
        {
            ...
        }


Mais je n'ai pas d'exemple ici, je regarde si je me rappelle.

Whismeril
Commenter la réponse de Whismeril
Messages postés
13970
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
14 novembre 2019
319
0
Merci
Ha j'avais pas vu la réponse de BinKentsu et c'est exactement ce que j'allais te proposer!

ListView1.Items[0].BackColor = Color.Green
;

Whismeril
Commenter la réponse de Whismeril
Messages postés
66
Date d'inscription
jeudi 1 septembre 2011
Statut
Membre
Dernière intervention
22 juillet 2014
6
0
Merci
Moi j'avais un exemple mais avec une ListView, ce qui fait référence à ce qu'a dit Whismeril, et je confirme que ListViewItem existe, donc part plutôt sur cette idée.

BinKentsu
Commenter la réponse de cs_BinKentsu
Messages postés
14
Date d'inscription
vendredi 15 février 2008
Statut
Membre
Dernière intervention
18 novembre 2012
0
Merci
Donc si je comprend bien faut je change de control que j'utilise une ListView ?
Commenter la réponse de Houbie87
Messages postés
66
Date d'inscription
jeudi 1 septembre 2011
Statut
Membre
Dernière intervention
22 juillet 2014
6
0
Merci
Voilà c'est tout à fait ça :)
C'est pas plus compliqué t'inquiète

BinKentsu
Commenter la réponse de cs_BinKentsu