web-dev-qa-db-fra.com

Changer la couleur de l'étiquette en C #

Je travaille dans un programme de chat en C # et j'ai besoin de donner à chaque utilisateur une couleur différente, => J'ai donc besoin d'une fonction pour changer la couleur de l'écriture en C #

Merci

5
Gee_Djo

Je vais supposer qu'il s'agit de questions WinForms (ce que l'on ressent, basé sur le fait qu'il s'agit d'un "programme" plutôt que d'un site Web/d'une application). Dans ce cas, vous pouvez simplement effectuer les opérations suivantes pour modifier la couleur du texte d'une étiquette:

myLabel.ForeColor = System.Drawing.Color.Red;

Ou toute autre couleur de votre choix. Si vous voulez être plus précis, vous pouvez utiliser une valeur RVB comme ceci:

myLabel.ForeColor = Color.FromArgb(0, 0, 0);//(R, G, B) (0, 0, 0 = black)

Avoir différentes couleurs pour différents utilisateurs peut se faire de plusieurs façons. Par exemple, vous pouvez permettre à chaque utilisateur de spécifier ses propres couleurs de valeur RVB, de les stocker quelque part, puis de les charger lorsque l'utilisateur se "connecte".

Une autre méthode pourrait être d'utiliser simplement 2 couleurs - 1 pour l'utilisateur actuel (exécutant l'application) et une autre couleur pour tout le monde. Cela aiderait l'utilisateur à identifier rapidement ses propres messages au-dessus des autres.

Une troisième approche pourrait être de générer la couleur au hasard - cependant vous obtiendrez probablement des valeurs contradictoires qui ne s'affichent pas bien dans votre contexte, donc je suggérerais de ne pas adopter cette approche. Vous pouvez avoir une liste prédéfinie de couleurs "acceptables" et en ajouter une dans chaque liste pour chaque utilisateur qui se joint.

29
musefan

Vous pouvez essayer ceci avec Color.FromArgb:

Random rnd = new Random();
lbl.ForeColor = Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255));
7
Arshad