実行時に Web フォームの背景色をプログラムで設定したい (ユーザーが好みの色を選択できるようにするため)。
次のように、名前付きの色でこれを行うことができます。
txt1.BackColor = System.Drawing.Color.PeachPuff;
しかし、次のように、RGB値を使用して色を設定する方法を理解するのに苦労しています:
txt1.BackColor = SomeConverter("#FEC200");
これはどのように行われますか?
txt1.BackColor = System.Drawing.ColorTranslator.FromHtml("#FEC200");
これを使って
txt1.BackColor = System.Drawing.ColorTranslator.FromHtml("#FEC200");
また、System.Drawing.Color
(db に保存するために) 文字列に戻す場合は、次のようにします。
private static String ConvertToHex(System.Drawing.Color color)
{
return "#" + color.R.ToString("X2") + color.G.ToString("X2") + color.B.ToString("X2");
}
private static String ConvertToRGB(System.Drawing.Color color)
{
return "RGB(" + color.R.ToString() + "," + color.G.ToString() + "," + color.B.ToString() + ")";
}
@Hossein-Narimani-Rad による、ColorConverter.ConvertFromString を使用すると述べた別の回答がありました。試してみたところ、次のように動作しました。
System.Drawing.ColorConverter conv = new System.Drawing.ColorConverter();
txt1.BackColor = (System.Drawing.Color)conv.ConvertFromString("#FEC200");
しかし、@ Win と @ Manish-Mishra の回答はより簡潔で、私が行っていることです。