時変更を行った.純ボタンのBackColorには戻り値とされているとは思いませんが、同じに見えませ。

StackOverflow https://stackoverflow.com/questions/506641

  •  21-08-2019
  •  | 
  •  

質問

私はボタンをたいと思った"フラッシュ"と明記のユーザを取得します。きっかけになるかもしれないと最も簡単な方法が変更されるボタンの BackColor 物件別の色を切り替えることです。なんて思ったこと。

this.oldColor = myButton.BackColor;
myButton.BackColor = Color.Blue;

その後の約1/2目:

myButton.BackColor = this.oldColor;

がボタンの背景色となっている 独自の 暗めのボタンのフォームです!

最初、と思ったありがとうございます。は何かボタンのオリジナルカラーが名前付きカラー(この場合、"制御")がない。

このドラマのストーリーも、いようだが myButton.BackColor のデバッガを取得しま

{Name=Control, ARGB=(255, 236, 233, 216)}

そ正しい!しかしくスクリーンショットにチェックを色でないのと同様のボタン!

あのようなマスキング。またはおそらくいくつかの種類のディザ?

役に立ちましたか?

解決

きっかけになるかもしれないとされていなければいけの問題です。がある他の物件のためのボタンやTabPagesみう)の名前 UseVisualStyleBackColor.いるかどうかを制御を使用しない"映像スタイル"を計算する場合 BackColor.さらに悪いことなどを設定する BackColor, での設定 false.いうこ:

this.oldUseVisualStyleBackColor = myButton.UseVisualStyleBackColor;
this.oldColor = myButton.BackColor;
myButton.BackColor = Color.Blue;

時に大ブームとなったテレビアニメをリセットします:

myButton.BackColor = this.oldColor;
myButton.UseVisualStyleBackColor = this.oldUseVisualStyleBackColor;

(ットによりリセットする BackColor 最初に、なければいけないのですが、セット UseVisualStyleBackColor.)

わたしにはわかりませんの UseVisualStyleBackColor では、なぜなのかな、そうです。

(感謝、Marc!れないようなこのご協力をお願!)

他のヒント

私は差が1の正規ARGBカラーであることである疑いがあると、1つは、システム/既知の色である。

.NETのコントロールは、色は、明示的な(この制御で設定)または継承されているかどうかを追跡します。これは、ハードバック正常に変更することができます...しかし、あなたはそうのように、PropertyDescriptorでそれを行うことができるかもしれない。

    TextBox tb = new TextBox();
    tb.BackColor = Color.Red;
    // now set it back to inherited
    PropertyDescriptor prop = TypeDescriptor.GetProperties(tb)["BackColor"];
    if (prop.CanResetValue(tb))
    {
        prop.ResetValue(tb);
    }

ビット不格好、それが動作するはずです。

ボタンのUseVisualStyleBackColorプロパティは、ボタンの背景が視覚スタイルを使用して描画されたか否かを判定する。ボタンのUseVisualStyleBackColorプロパティをTrueに設定されている場合は、BackColorプロパティは無視されます。 BackColorプロパティを別の色に変更されると、UseVisualStyleBackColorプロパティが自動的にFalseに設定されています。

あなたがデザインモードにあるとき、

あなたはこの効果を見ることができます。ボタンを作成し、赤にBackColorプロパティを変更します。そして、UseVisualStyleBackColorプロパティにスクロールダウンし、それがFalseに設定されていることに注意してください。あなたがTrueにUseVisualStyleBackColorプロパティを設定すると、ボタンの色はデフォルトの色に戻って変更されます。 Falseに戻っUseVisualStyleBackColorプロパティを切り替えると、赤に戻るボタンの色を変更します。

次のプログラムでは、この効果を示しています。

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    Button1.BackColor = Color.Red
End Sub

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Button1.UseVisualStyleBackColor = Not Button1.UseVisualStyleBackColor
End Sub

彼の問題を掲示し、有罪culpertとしてUseVisualStyleBackColorプロパティを識別するためのscraimerに感謝します。

それとも、ただ入力することができます:

TextBox tb = new TextBox();
//Change the Backcolor
tb.BackColor = Color.Red;
//Resets the Backcolor to its default value, its pretty strange that you don't see the method but it works with allmost all properties
tb.ResetBackColor();

簡単な方法:

myButton.BackColor = Color.Empty
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top