2016-04-10 24 views
0

Panellerde ve formlarda grafiklerin yenilenmesiyle ilgili bir sorun yaşıyorum. Görüntüyü çizdiğimde iyi çalışıyor ancak Panel.Refresh kullanarak başka bir görüntüyle değiştirmek istediğimde, olay işleyicisi otomatik olarak kendisini etkin hale getiriyor. Panel.Update'i kullanırsam, ikinci resmi ilk üzerine çeker. Birçok kişi Invalidate yöntemini kullanmamı ancak aynı sonsuz döngü problemine sahip olmamı tavsiye etti.Paneldeki görüntüyü yenilemek sonsuz döngü oluşturur (C# - Winforms)

Bitmap bitmap = new Bitmap(Resources.Image1); 

private void panel1_Paint(object sender, PaintEventArgs e) 
    { 
      if (parameter == 0) { bitmap = new Bitmap(Resources.Image1); } 
      if (parameter >= 2) { bitmap = new Bitmap(Resources.Image2); } 
      e.Graphics.DrawImage(bitmap, 60, 10); 
      panel1.Refresh(); 
    } 
+1

'panel1.Refresh();' veya “Geçersiz”, 'Paint' olayını tekrar tetikler -> sonsuz döngü. Onu kaldır! 'Parametre' değiştirdiğiniz yere taşıyın !! – TaW

cevap

0
panel1.Refresh(); 

boya olay tetiklemek için neden olur. Parametre değerinin değiştirildiği yenileme kodunu koydum.