![]() |
Модераторы: diadiavova, gambit |
![]() ![]() ![]() |
|
krewin |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 27.8.2009 Репутация: 1 Всего: 1 |
Panel2.CreateGraphics.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
Dim nn As Image = Image.FromFile(CurDir() & "\img\1.jpeg") Panel2.CreateGraphics.DrawImage(nn, 230, 500) Вот простой код рисует изображение на панели которая имеет фоновый рисунок. Всю очень просто. Проблема втом как теперь удалить этот русунок на фоне ???????????? Я пробывал просто обновит фоновый рисунок , он очищает изображение но смотреть на это обновление просто не приято оно мигает ! Сужествуют другие способы чтобы не трогать фоновый рисунок ? |
|||
|
||||
diadiavova |
|
||||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 8 Всего: 142 |
Для того чтобы прорисовать что-то в панели надо делать это в обработчике её события Paint, а объект Graphics получать из второго аргумента обработчика, а не создавать новый по всякому поводу и без.
Если надо иметь возможность менять рисунок, то тогда его надо передавать в обработчик при помощи свойства какого-нибудь, например так
Для очистки надо свойству передать Nothing, Если точку прорисовки тоже надо менять, то для неё тоже свойствоо создай(по той же схеме). -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
||||
|
|||||
percilacus |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 21.8.2009 Где: RemoteDetent Репутация: нет Всего: нет |
Чтоб не мерцало у контролов есть Protected свойство DoubleBuffered. Его надо установить в true. И рисовать в обработчике Paint этого контроля, используя при этом e.Graphics.
Ну а чтобы получить доступ к DoubleBuffered, нужно создать свой класс и унаследовать Panel Очистить: nn.Dispose() Panel2.Invalidate() Это сообщение отредактировал(а) percilacus - 17.9.2009, 17:29 |
|||
|
||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 8 Всего: 142 |
А двойная буферизация для прорисовки фонового изображения это не слишком?
![]() Это сообщение отредактировал(а) diadiavova - 16.9.2009, 20:55 -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
percilacus |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 21.8.2009 Где: RemoteDetent Репутация: нет Всего: нет |
diadiavova, он же говорит мерцает значит часто перерисовывает
|
|||
|
||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 8 Всего: 142 |
Это иногда случается из-за того, что код кривой. В таких ситуациях двойная буферизация не помогает. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума VB .NET | |
|
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | VB .NET | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |