2016-04-01 16 views
0

Tamam, formumun arka plan görüntüleri ve üzerinde çok sayıda düğme bulunan çok sayıda Nested "Panel" var. Form her gösterildiğinde (Simge durumuna küçült/Geri Yükle, ancak Gizle/Göster), denetimler ekrana işlendikçe titremeye başlar.Yükleme sırasında denetimlerinin titremesini önlemek için WinForm'u nasıl göstermeyi geciktirebilirim?

Opaklığı% 100'e ayarlamadan önce denetimleri oluşturmak için asgari gecikme ile opaklığı kullanabilirim. Ama bunu yapmanın daha iyi bir yolu olup olmadığını merak ediyordum. .Net olayı sürüyor olsaydı, Winformun kendisinde "Göster" den önce tüm kontrollerin düzgün bir şekilde gösterilip gösterilmediğini tespit etmenin bir yolu olacağını umuyordum.

Winform üzerinde this::DoubleBuffered=true; denedim ama beklendiği gibi çalışmadı.

+0

Tasarım zamanında ayarlanmıştır. – RiA

cevap

1

Birisi nedenini açıklayabilir, ancak aşağıdaki yöntemi bir forma koyarak birden fazla düğme ve görüntü kontrolüne sahip olan panellerimde titremeyen sorunları önlemek için bana yardımcı oldu. Kontrollerimin arkasındaki kodda (dinamik olarak) oluşturulduğunu belirtmem gerekiyor.

protected override CreateParams CreateParams 
    { 
     get 
     { 
      CreateParams cp = base.CreateParams; 
      cp.ExStyle |= 0x02000000; // Turn on WS_EX_COMPOSITED 
      return cp; 
     } 
    } 
+0

Mine, dinamik olarak bir yükleme kümesi değil. İşlendiğinde, iç içe geçmiş paneller (özellikle saydam arka plan kullananlar), formun arka plan rengini (yani, gg görüntüsü değil, gri) miras alırken, resim kutuları doğru arka plan görüntüsünü devralır. Aksi halde bu titreme sorunu giderdi. – RiA

+0

Bu, titreme sorununu çözerse, bunu bir yanıt olarak işaretleyebilir misiniz? :) –

+0

Yarı yolda çalışıyor. Arka plan görüntüsü ile oluşmayan paneller için hala bir çözüme ihtiyacım var. – RiA

İlgili konular