2012-05-13 31 views
33

Düğme arka plan rengi için farklı seçenekler deniyordum ve Görünüm kategorisinde BackColor özelliğini değiştirmeyi bitirdim. O zamanlar o Control olduğu varsayılan olarak ne için değiştirildi, ancak yine de diğer düğmelerden farklı görünür: Ben proje inşa ve Visual Studio yeniden başlatmayı denedimVarsayılan düğme BackColor'a nasıl sıfırlanır?

Screenshot of buttons

ama yardım etmedi .

Başka bir düğmeyi ve kopyala/yapıştır kodunu sürükleyebileceğimi biliyorum, ancak bunun nedenini ilk olarak belirledim ve düzgün şekilde nasıl düzeltebilirim?

+0

sonra sadece gidin [geri color] özelliği (tasarım modunda) ve sağ klik: –

cevap

54

BackColor özelliği, varsayılan olarak bir ortam özelliğidir ve bu, değerini üst denetimden miras aldığı anlamına gelir. açıkça'u belirli bir değere ayarlarsanız, bu da ortamın doğasını geçersiz kılar ve bu değeri kullanmak için zorlar.

Standart Windows düğme denetimi, özel renkleri desteklemez, bu nedenle WinForms, tasarımcının rengini geçersiz kılmasına izin vermek için denetimi özel olarak çizecektir. Bu şekilde çirkin yeşil veya kırmızı bir tuşa sahip olmak istiyorsanız bunu yapabilirsiniz.

Burada, düğme denetimi için özel bir arka plan rengini etkin bir şekilde ayarladığınız (3B denetiminin arka plan rengine göre ayarladığınız, ancak kolayca mor olabileceği gibi) ve bu da WinForms'u zorlamanıza neden oluyor. özel kontrol çizin ve arka planını belirtilen renkle boyayın. “Düz” bir görünüm veren budur — arka plan rengi artık varsayılan degrade efektini kullanmak yerine tek bir özel renkle boyanmıştır. Windows Classic (pre-Aero) teması altında fark edilemezdi çünkü düğmeler aslında düz 3D kontrol rengiyle boyandı. Ancak Aero, gradyanları ve diğer "sıcak" efektleri ekledi;

size ayarladım değeri temizlemek ve mal ortam doğasını geri yüklemek için Properties penceresinde mülkiyet sağ tıklayabilir ve "Reset" seçeneğini seçin. Ayrıca default(Color) için özelliğini ayarlayarak kod üzerinden yapabilirsiniz: BackColor mülkiyet özel desteklemek için her değiştiğinde

myButton.BackColor = default(Color); 

Ayrıca otomatik false ayarlı alır true, geri UseVisualStyleBackColor özelliğini ayarlamanız gerekir arka plan rengi.

Alternatif olarak, WinForms'a bunun gibi özel özellikleri yok saymasını söyleyebilir ve Windows'dan düğme denetimini yapmasını isteyebilirsiniz. FlatStyle özelliğini FlatStyle.System olarak ayarlayarak bunu yapın. Yine bu, tasarımcıda ya da kod aracılığıyla yapılabilir. Sadece bu bir horridly çirkin kontrolünü oluşturarak, arka plan rengi gibi saçma şeyler değiştirerek engelleyen, ama aynı zamanda ince Aero vurgulu üzerindeki etkileri solmaya dahil olmak üzere, WinForms uygulamaya Win32 düğmesi kontrolünün yerli davranışını geri yükler.

Bunun neden varsayılan olmadığı konusunda hiçbir fikrim yok. Çirkin ve standart olmayan kontroller almak için özel bir istekte bulunmalısınız. Bu otomatik olarak gerçekleşmemeli. Sadece yıllarca her türlü çirkin kontrolleri yapabilen VB 6 programcılarına bir imtiyaz olduğunu varsayabilirim.

+1

* Varsayılan (Renk) * 'in karşılık gelen VB.NET sürümü nedir? –

+1

@PeterMortensen: 'Yeni Renk()' benim için çalıştı. – Neolisk

+0

FlatStyle harika. – Vlad

10

Varsayılan arka rengi değiştirdiğinizde, UseVisualStyleBackColor özelliğini false olarak döndürür.

Sadece bunu doğru olarak değiştirin ve ayarlanmalıdır!

0

Soru başlığınıza başvurunuz, "Varsayılan olarak nasıl sıfırlanır? BackColor?" ,

ButtonFoo.visible = False 

ButtonFoo demek, başka bir düğme oluşturun ve görünmez olarak ayarlayın

ve (bir varsayılan renk olduğundan) rengini elde etmek için bu düğmeyi kullanabilirsiniz:, ben benim sorun çözüldü başka bir düğme rengini sıfırlamak için, örneğin,

İşte siz gidin; renk varsayılan değerine geri yüklendi :)

7

Düğmenin varsayılan arka plan rengini geri yüklemek için; benim için çalıştı Ne

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

: FromKnowColor

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

Sistemin renklerini erişmek için. Gerçekten bu kadar basit.

tasarım modunda değiştirdiyseniz
Button1.BackColor = SystemColors.ButtonFace; 
Button1.ForeColor = default(Color); 
Button1.UseVisualStyleBackColor = true; 
0

varsayılan arka planı ve ön plan bir düğme kullanımına geri yüklemek için. Varsayılana geri dönmek için bir menü alacaksınız.
İlgili konular