2016-04-10 2 views
0

У меня проблема с освежающей графикой на панелях и формах. Когда я рисую изображение, он отлично работает, но когда я хочу заменить его другим изображением, используя Panel.Refresh, он автоматически активирует обработчик событий без конца. Если я использую Panel.Update, он просто нарисует второе изображение на первое. Многие люди рекомендовали использовать метод Invalidate, но он имеет ту же проблему с бесконечным циклом.Освежающее изображение на панели создает бесконечный цикл (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();' или 'Invalidate' запускает событие' Paint' снова -> бесконечный цикл. Убери это! Переместите его туда, где вы меняете 'параметр' !! – TaW

ответ

0
panel1.Refresh(); 

Вызывает событие краска для запуска. Я помещаю код обновления, где значение параметра изменяется.