2009-12-20 1 views
0

В C# (GDI +), когда я рисую что-то на панели, используя класс Graphics ... когда я передаю другое окно под землей (на панели) все, что я нарисовал, исчезает. .. !!Как сохранить мою панель обновленной ... она исчезает

Как это исправить?

Спасибо ...

+2

Есть ли вероятность увидеть ваш код или вы ожидаете от нас догадки? –

+0

Графика g = panel1.CreateGraphics(); g.DrawLine (новая ручка (новый SolidBrush (Color.Black)), новая точка (3,3), новая точка (12,15)); // после этого строка рисуется, но когда я сворачиваю (например) оконную форму моей программы и максимизирую ее снова, линия будет удалена. – user235599

+0

Как я уже ответил, вам нужно нарисовать все на событии рисования – albertein

ответ

5

Вы должны нарисовать все о событии Paint.

По существу ничего не окрашено, потому что окна нужно снова перерисовывать после того, как они перекрываются, сводятся к минимуму и т. Д. Итак, если вы хотите нарисовать что-то, что вам нужно сделать на событии Paint, в основном перерисовывать его каждый раз необходимо ,

Если вам нужно всего лишь нарисовать свои вещи после того, как пользователь нажмет на кнопку, просто поместите код рисования на событие рисования, но ничего не делайте, если какой-либо флаг не установлен, вам нужно будет только установить и вызовите метод Invalidate вашей панели, чтобы заставить его перерисовать себя, запуская свой код в процессе.