Bonjour,
Voilà mon problème, je gère des listbox pour faire un calendrier et j'aimerai que chaque activité (voir l'image) aie une couleur différente. Mais je ne sais pas comment faire.
Quelqu'un peut m'aider, s'il vous plait?
![]()
Bonjour,
Voilà mon problème, je gère des listbox pour faire un calendrier et j'aimerai que chaque activité (voir l'image) aie une couleur différente. Mais je ne sais pas comment faire.
Quelqu'un peut m'aider, s'il vous plait?
![]()
A ma connaissance cela n'est pas possible avec ce type de contrôle.
Oui, c'est possible.
Pour ce besoin tu peux utiliser la méthode DrawItem du contrôle ListBox, voici un exemple :
Il faut ajouter ça à la méthode Form1()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 private void listBox1_DrawItem(object sender, DrawItemEventArgs e) { if (e.Index >= 0) { using (SolidBrush solidBrush = new SolidBrush(Color.Red)) e.Graphics.DrawString(listBox1.Items[e.Index].ToString(), e.Font, solidBrush, e.Bounds, StringFormat.GenericDefault); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public Form1() { InitializeComponent(); listBox1.DrawMode = DrawMode.OwnerDrawFixed; }
J'aimerai bien que chaque activité aie une couleur différente, comment je pourrais faire?
Donc que l'activité2 soit rouge dans chaque listbox dans lequel elle est, pareil pour la trois, etc
Donc ici ton problème sort du cadre purement graphique si je comprends bien.
Si tel est le cas, tu peux fonctionner avec un contrôle de type Dictionary.
Tu renseignes comme clé la chaîne de caractères correspondant à ton activité et comme valeur associée à cette clé : une couleur.
Après ce sont des tests simples pour savoir si une clé est déjà présente dans le dictionnaire.
Si c'est le cas, tu récupères la valeur associée et sinon tu ajoutes une nouvelle paire clé/valeur à ton dictionnaire.
Lien vers la documentation MSDN du Dictionary
Partager