2010-11-19 28 views
2

Ben visual studio 2008 kullanıyorumarka plan resmini pasif olarak devre dışı bırakma

İşlenmiş bir resmi dağıtan bir kontrolüm var. İşleme parametreleri değiştirildiğinde, bu resmi güncellemek istiyorum, ancak titremesiz. Pencereleri boyamadan önce alanı boşaltabilseydim, titreme, çoğunlukla gider.

Soru, nasıl yapılır?

Şunlar gibi: this.SetStyle (ControlStyles.AllPaintingInWmPaint, true); Bunu yapmamalı, bunun dışında, TableLayoutPanel denetimini (bir saatimi yapmaya çalışarak geçirdiğim bir şey) alt sınıflara ayırmamı ve hiçbir şey yapmadığım için, bunun hiçbir etkisi olmadı.

Denetimimin arka plan resmini kapatmak için kolay bir yol var mı?

+0

Denetiminizin DoubleBuffered özelliğini true değerine ayarladınız mı? –

cevap

4

Eğer OnPaintBackground olay geçersiz ve hiçbir şey yapmadan denediniz mi?

protected override void OnPaintBackground(PaintEventArgs pevent) 
{ 
} 
+0

Bu benim için çalışıyor! – Skizz

+0

Çalışmaları. Şimdi sadece form editörünü bozmadan kontrolün nasıl alt sınıflara ayrılacağını bulmalıyım! –

-1

bu deneyin:

this.SuspendLayout(); 
// do update here 
this.ResumeLayout(); 

Açıklama: this formu

+0

Sadece hangi resmi boyamak istediğimi güncelliyorum. Aslında form hakkında bir şey değiştirmiyorum, sadece yeni görüntü ile yeniden yazılacak şekilde geçersiz kılmıyorum. Sorun, arka plan boyamadan önce temizleniyor, bu yüzden titriyor. –

+0

Anladım. Benim üzerimdeki karışıklık için özür dilerim. –

İlgili konular