![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| slavaentp |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 17.6.2008 Репутация: нет Всего: -1 |
Как сделать так, чтобы рисунки не пропадали после сворачивания окна или наложения другого и т.д.?
Наверное типовый частовстречающийся вопрос, но не нашёл в туториалах как нормально его решить. Рисую так: protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); Graphics gr = e.Graphics; Pen penThin = new Pen(Color.Black, 1); gr.DrawLine(penThin, 10,10,10,10); } Это сообщение отредактировал(а) slavaentp - 12.11.2009, 23:44 |
|||
|
||||
| KuMa1104 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 541 Регистрация: 16.4.2009 Где: Ростов-на-Дону Репутация: 1 Всего: 3 |
надо вызывать Invalidate() для обекта на котором рисуеш.
Добавлено @ 00:08 Например сделай событие для сворачивания формы и в нем Invalidate() Тогда у тебя каждый раз после сворачивания окна будет происходит перересовка формы Это сообщение отредактировал(а) KuMa1104 - 13.11.2009, 00:09 -------------------- Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце. Время - штука относительная... а время обеда - ещё более относительная |
|||
|
||||
| slavaentp |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 17.6.2008 Репутация: нет Всего: -1 |
Я рисую просто на форме. Куда писать Invalidate() ? |
|||
|
||||
| KuMa1104 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 541 Регистрация: 16.4.2009 Где: Ростов-на-Дону Репутация: 1 Всего: 3 |
slavaentp Invalidate() заставляет перерисовывать форму, вызываеться твой
к примеру для события Resize твоей формы. Тогда у тебя каждыи раз будет перерисовываться)) -------------------- Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце. Время - штука относительная... а время обеда - ещё более относительная |
|||
|
||||
| slavaentp |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 17.6.2008 Репутация: нет Всего: -1 |
И какие события надо обработать, чтобы не исчезало?
Исчезает. |
|||
|
||||
| KuMa1104 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 541 Регистрация: 16.4.2009 Где: Ростов-на-Дону Репутация: 1 Всего: 3 |
MainForm_Paint
-------------------- Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце. Время - штука относительная... а время обеда - ещё более относительная |
|||
|
||||
| slavaentp |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 17.6.2008 Репутация: нет Всего: -1 |
Плюс обрабатывать событие Paint я тоже пробовал. Всё исчезает |
|||
|
||||
| KuMa1104 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 541 Регистрация: 16.4.2009 Где: Ростов-на-Дону Репутация: 1 Всего: 3 |
Аха ха.. В точку)))) Если рисунок реально большой то лучше рисовать на отдельном контроле и использовать двойную беферизацию, так реально быстрей будет. Я только что твой код проверил у меня ничего не ищезло))) -------------------- Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце. Время - штука относительная... а время обеда - ещё более относительная |
|||
|
||||
| slavaentp |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 17.6.2008 Репутация: нет Всего: -1 |
Да, обработка Paint работает. Но проблема в другом - у меня рисунок интерактивный. При нажатии на клавиши он изменяется. И рисуется через переменные на уровне класса. Поэтому при перерисовке он белиберду делает, т.к. значения переменных уровня класса изменилось к тому времени.
Как это решать? |
|||
|
||||
| KuMa1104 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 541 Регистрация: 16.4.2009 Где: Ростов-на-Дону Репутация: 1 Всего: 3 |
Белеберда какаято.
Можно конкретнее к -------------------- Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце. Время - штука относительная... а время обеда - ещё более относительная |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | .NET для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |