интересное поведение программы
как курсовую пишу графический редактор на C# используя библиотеку GDI+.
для отображения рисунка использую panel. Как функцию перерисовки использую свою функцию MyPaint. Но это не суть, на самом деле, меня интересует вот что: в определенный момент, прорисовка перестает корректно работать, то есть она вызывается, программа через всю нее проходит, по сути прорисовка срабатывает, но на экране не отображается результат до тех пор, пока я не переклячусь на какую нибудь другую прогу и обратно. Я не могу понять сути: как может код на самом деле срабатывать, но не отображатся на экране?
Надеюсь, хоть кто-нибудь поймет, о чем идет речь и сможет мне чем-нибудь помочь.
А какой контрол ты перерисовываешь.. вернее, перерисовку panel в обработке события Paint какого контрола делаешь?
прорисовку делаю всякий раз, когда это необходимо. возьмем за пример рисование круга: в обработке события panel_MouseMove(..) всякий раз вызывается событие Paint (стирается предыдущий временный нарисованый круг) и там же рисуется новый, координаты которого зависят от текущих координат мыши. То есть по сути здесь происходит рисование временных кругов и если с прорисовкой все нормально, то на экране все время присутствует только один временный круг.
А уже в обработке события panel_MouseUp(..) происходит нарисовка окончательного круга, который рисуется непосредственно на bitmap. Надюсь, что доходчиво объяснила - получается вызываю Paint всякий раз когда надо уничтожить временные части рисунка и прорисовать заново действительный рисунок (bitmap).