2011-11-21 22 views
16

Tıklandığında, arka plan rengini Color.Yellow olarak değiştirdiğim Windows Forms formunda bir düğme var. Tekrar tıklandığında, orijinal varsayılan görünüme geri yüklemek istiyorum. Varsayılan arka plan rengi SystemColor.Control şeklindedir.Geri Yükleme C# Windows Forms backcolor

düğmesi ilk kez tıklandığında Değiştirmek tek şey yine tıklandığında zaman

btn.BackColor = SystemColors.Control 

yeni arka plan kendisiyle aynı gölgeleme yok do

btn.Text = "ABC"; 
btn.BackColor = Color.Yellow; 

olduğunu Aslında herhangi bir tıklamadan önce yaptı. Düğmenin başlangıçta düz bir renk olmayan bir arka planı vardı, ancak iki hafif gri tonları vardı. Son renk, grinin katı bir tonu haline gelir.

Bunu bir Windows 7 makinesinde test ediyorum.

Ekran Görüntüsü:

Enter image description here

+1

bir ekran görüntüsü gönderebilir miyim? Ayrıca, hangi işletim sistemi sürümü üzerinde çalışıyorsunuz? –

+4

Sorularınıza daha fazla çaba gösterdiğinizde, elde edeceğiniz daha iyi cevaplar, sorunun ekran görüntülerini içerir. – Nasreddine

+0

Related: * [Varsayılan ayar BackColor'a nasıl sıfırlanır?] (Http://stackoverflow.com/questions/10569200) * –

cevap

22

bu deneyin:

if (button1.BackColor == Color.Yellow) 
{ 
    button1.BackColor = SystemColors.Control; 
    button1.UseVisualStyleBackColor = true; 
} 
else 
{ 
    button1.BackColor = Color.Yellow; 
} 
+0

Bingo, bu işe yaradı – JonF

+0

+1 İyi yakalama Bu yöntemin farkında değildim –

1

elle BackColor ayarlamak yerine btn.ResetBackColor() kullanmayı deneyin.

+1

Bu işlev winform düğmesinde mevcut değil (en azından bir .net 3.5 win formunda) – JonF

+1

Aslında var, sadece intellisense içinde görünmüyor, çünkü [EditorBrowsable (EditorBrowsableState.Never)] –

+1

@JonF [MSDN] 'ya göre (http://msdn.microsoft.com/en-us/library) /system.windows.forms.control.resetbackcolor.aspx) var. Net 1.0 – Nasreddine

11

UseVisualStyleBackColor öğesini true olarak ayarlamanız gerekir. Arka rengi değiştirdiğinizde bu özellik yanlış olarak ayarlanır.

+2

+1 Bu sizin sorununuzu çözmek için tam olarak gerekenler. –

1

Bu (.net, 3.5 Windows 7 üzerinde test) varsayılan görünüm geri yükler:

btn.BackColor = System.Drawing.Color.Transparent; 
İlgili konular