2012-05-13 4 views
33

私は、ボタンの背景色のさまざまなオプションを試していて、外観カテゴリのBackColorプロパティを変更しました。私は当時、それはControlで、デフォルトであるものにそれを変更しましたが、それはまだ他のボタンとは異なるになります。私は、プロジェクトをビルドおよびVisual Studioを再起動しようとしたデフォルトのボタンに戻す方法BackColor?

Screenshot of buttons

が、それは助けにはなりませんでした。

私は別のボタンをドラッグしてコードをコピー/ペーストすることができますが、これは最初に何が起こり、どのように正しく修正するのですか?

+0

デザインモードに変更した場合は、そのまま[バックカラー](デザインモード)財産および右クリックに行きます。デフォルトに戻すためのメニューが表示されます。 –

答えて

54

プロパティはデフォルトで周囲のプロパティです。つまり、親コントロールから値を継承します。 を明示的にに設定すると、周囲の性質が上書きされ、その特定の値が使用されます。

標準のWindowsボタンコントロールはカスタムカラーをサポートしていないため、実際にはWinFormsはコントロールをカスタム描画して、デザイナーがその色をオーバーライドできるようにします。そうすれば、醜い緑色または赤色のボタンを使用したい場合は、それを行うことができます。

ここでは、ボタンコントロールの背景色を効果的に設定しています(3Dコントロールの背景色に設定しますが、簡単に紫色にすることもできます)。カスタムはコントロールを描画し、指定した色で背景をペイントします。これが、フラットな外観を実現するものです。デフォルトのグラデーションエフェクトを使用するのではなく、背景色が単一のカスタムカラーでペイントされるようになりました。実際にボタンがフラットな3Dコントロールカラーで塗られただったので、Windows Classic(プレアロ)テーマではそれほど目立たなかったでしょう。しかし、Aeroにはグラデーションやその他の「ホット」エフェクトが追加されています。

設定した値をクリアしてプロパティの周囲の性質を復元するには、プロパティウィンドウのプロパティを右クリックし、[リセット]を選択します。またdefault(Color)にプロパティを設定することで、コードによってそれを行うことができます:BackColorプロパティは、カスタムをサポートするように変更されるたびに

myButton.BackColor = default(Color); 

あなたはまた、自動的にfalseに設定されますtrueに戻っUseVisualStyleBackColorプロパティを設定する必要があります。背景色。

また、WinFormsにそのようなカスタムプロパティを無視し、Windowsにボタンコントロールの描画を依頼することもできます。 FlatStyleプロパティをFlatStyle.Systemに設定してください。

この場合も、これはデザイナーまたはコードで実行できます。これにより、背景色のような愚かなものを変更することを防ぎ、醜いコントロールを作成しますが、ホバー上の微妙なAeroフェード効果を含むWin32ボタンコントロールのネイティブ動作をWinFormsアプリケーションに戻します。

なぜこれがデフォルトでないのかわかりません。あなたは醜い非標準的なコントロールを得るために特別な要求をしなければなりません。それはただ自動的に起こるべきではありません。 VB6のプログラマーは何年もの間、あらゆる種類の醜いコントロールを作ることができました。

+1

* default(Color)*の対応するVB.NETバージョンは何ですか? –

+1

@PeterMortensen: 'New Color()'が私のために働いた。 – Neolisk

+0

FlatStyleは素晴らしいです。 – Vlad

10

デフォルトのバックカラーを変更すると、UseVisualStyleBackColorプロパティがfalseに反転されます。

ちょうどそれをtrueに戻すと、あなたは設定する必要があります!

0

質問タイトルを参照すると、「デフォルトボタンBackColorにリセットする方法」 、別のボタンを作成しますButtonFooを言うと、目に見えないに設定し、

ButtonFoo.visible = False 

と(それがデフォルトの色であるので)あなたはその色を取得するには、このボタンを使用することができます。、私はで私の問題を解決しました別のボタンの色をリセットするには、たとえば

ButtonChangedColor.BackColor = ButtonFoo.BackColor 

ここに行ってください。色はデフォルトに戻されます。

7

ボタンのデフォルトの背景色を復元するには、を使用します。私の仕事は何

Button1.BackColor = SystemColors.ButtonFace 
Button1.UseVisualStyleBackColor = True 
3

FromKnowColor

CommandButton1.BackColor = vbButtonFace 
2
Button1.BackColor = Color.FromKnownColor(KnownColor.Control) 

使用すると、システムカラーにアクセスします。 それは本当に簡単です。ボタンを使用するデフォルトの背景と前景を復元するに

0

Button1.BackColor = SystemColors.ButtonFace; 
Button1.ForeColor = default(Color); 
Button1.UseVisualStyleBackColor = true; 
関連する問題