Bonjour à tous,
après plusieurs heures de recherche je me résous à finalement poster ma demande ici ! J'expose donc mon problème en essayant de faire simple: je souhaite avoir une listbox qui inclut un certain nombre de mots dépendant d'une liste déroulante. Jusqu'ici, aucun souci mais j'aimerai pousser le fonctionnement de ma ListBox en donnant une couleur à chaque mot pour les regrouper sous une catégorie (une catégorie= une couleur). Et c'est là que je coince, j'ai un début de solution avec une méthode trouvée sur le net:
J'ai également une méthode qui rajoute les éléments dans la liste mais je n'ai rien qui implique la couleur de la police à l'intérieur. Le problème avec mon code c'est que les résultats sont colorés selon l'ordre défini au-dessus, ainsi j'ai mon premier mot en rouge et le second en rose, peu importe le mot concerné.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 private void ListBoxTest_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e) { e.DrawBackground(); Brush myBrush = Brushes.black; switch(e.Index) { case 0: myBrush = Brushes.Red; break; case 1: myBrush = Brusheds.DeepPink; break; } e.Graphics.DrawString(((ListBox)sender).Items[e.Index].ToString(), e.Font, myBrush, e.Bounds, StringFormat.GenericDefault); e.DrawFocusRectangle(); }
Je vais donner un exemple de ce que je désire pour que ce soit plus explicite:
Supposons que ma liste est composée des mots fraise, tomate et citron. Je souhaiterais que "fraise" et "tomate" soit en rouges tandis que "citron" soit en jaune. D'après ce que j'ai lu un peu partout, ça me parait comme étant possible mais je dois mal m'y prendre... Je demande donc un petit coup de main, merci.
PS: je débute avec c# et je pense que ça se voit.![]()
Partager