C#プログラム

【C#】ボタンの背景色を元に戻す方法

C#でボタンの背景色を元に戻す方法!

とか言って、ボタンのBackColorプロパティをシステムのControlに設定すればいいんでしょ?!

と思っていたのですが、実際にボタンの背景色を別の色に設定し、元のシステムのControlに戻してみると、下図のように初期状態(button2が初期状態)に比べて、少し明るい色になってしまいます。

C# ボタンの背景色を元に戻す方法

 

これを回避するには、UseVisualStyleBackColorプロパティをTrueに設定することでボタンの背景色が元に色に戻す事ができます。

 

C# ボタンの背景色を元に戻す方法

 

元の色に戻した結果がこちら↓

C# ボタンの背景色を元に戻す方法

 

このUseVisualStyleBackColorプロパティはボタンの背景色(BackColorプロパティ)を変更後、勝手にFalseに変わってしまうので、元のTrueに変更する必要があります。

 

そもそもUseVisualStyleBackColorプロパティとは何?

と思い、調べてみたのですが、

 

visual スタイルがサポートされている場合に、visual スタイルを使用して背景を描画するかどうかを決定する値を取得または設定します。

 

という説明だったのですが、結局、良く分からず。。

 

という事で、詳細は分からないのですが、ボタンのBackColorプロパティをシステムカラーのControlに設定する時は、UseVisualStyleBackColorプロパティもTrueに設定すること!と覚えておくしかなさそうです。

 

この設定をコードで書くと、

 

button1.BackColor = SystemColors.Control;
button1.UseVisualStyleBackColor = true;

 

となります。

コメント

タイトルとURLをコピーしました