web-dev-qa-db-ja.com

C#でラベルの色を変更する

私はC#を使用してチャットプログラムで作業しており、すべてのユーザーに異なる色を与える必要があります=>したがって、C#で書く色を変更する関数が必要です

ありがとう

5
Gee_Djo

これはWinFormsの質問であると想定します(これは、Webサイト/アプリではなく「プログラム」であることに基づいているように感じられます)。その場合は、次のようにして簡単にラベルのテキストの色を変更できます。

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

またはお好みの他の色。より具体的にしたい場合は、次のようにRGB値を使用できます。

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

ユーザーごとに異なる色を使用するには、いくつかの方法があります。たとえば、各ユーザーが独自のRGB値の色を指定し、それらをどこかに保存し、ユーザーが「接続」したときにそれらをロードすることを許可できます。

別の方法として、現在のユーザー(アプリを実行中のユーザー)と他のすべてのユーザーに1つずつ、2色を使用する方法もあります。これにより、ユーザーは自分のメッセージを他のメッセージよりもすばやく特定できます。

3番目のアプローチは、ランダムに色を生成することです。ただし、背景に対してうまく表示されない競合する値を取得する可能性があるため、このアプローチを採用しないことをお勧めします。 「許容可能な」色の事前定義されたリストを用意し、参加するユーザーごとにそのリストから1つだけポップすることができます。

29
musefan

Color.FromArgbでこれを試すことができます:

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