私はWinFormsアプリケーションを構築しており、ほとんどのコントロールで特定の色を使用しています。私は時々WinFormsデザイナーから、時には自分のコードに直接行うことがあります。どのように私はWinFormアプリケーションでアプリケーション全体のカラーコードを実装していますか?
私はどこかのように見える静的クラスを得た:
public static class MyColors
{
public static Color DarkGreen = Color.FromArgb(0, 70, 62);
...
public static Color Orange = Color.FromArgb(239, 132, 16);
}
私は非常に簡単に私のコードでこれらの色を使用することができますが、それはこのエラーを発生させ、デザイナーから行うことは不可能です:
MyColors.DarkGreenは、有効な値ではありません。
(私はそれらの色ののInt32表現を保存しようとしたが、これは、同じエラーで失敗)
私が今使っているソリューションは、デザイナーのRGBカラーコードを使用することですMyColorsクラスの値が自分のコードに含まれていて、Visual Studioのすべての機能を置き換えるという変更を行っています。これはすてきな解決策ではありませんが、私はこれまでより良いアイデアを見つけることができませんでした。
アイデア?
注:私はおよそthis questionを知って、私は「KnownColors」を変更を見ていないよと、鉱山からわずかに異なっています。
@Jeff:デフォルトのwinformsコントロール(ボタン、ラベルなど)の色を更新したいので、これらのコントロールから継承しない限り、ForeColor/BackColorプロパティにEditor属性を実際に適用できません。私には少し残酷すぎるように聞こえる...または私は何かが恋しい? – Brann
@Brann:フォームを実装して既に継承しています。あなたは自分のフォーム内の上書きにそれを適用する必要があります。 –
もちろん、フォーム内のコントロールは、親コントロールから継承するためにColor.Emptyに設定する必要があります。そうしないと、フォームをオーバーライドする必要があります。私はデザイナーのサポートを得るための選択肢があるとは思わない、私は恐れている。 –