Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Бесконтрольная перерисовка дочернего mdi окна, множественный непонятный On_Paint 
:(
    Опции темы
GenkaRu
Дата 21.4.2010, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 5.4.2010

Репутация: нет
Всего: нет



 Вопрос скорее общий, помогите пожалуйста, кто знает, ситуация такая: Есть главная mdi форма, у неё есть 2 дочерних окна, и в главной форме размещён split container, а к нему уже привязаны эти дочерние окна, к первой и второй его панелям соответственно. 

 В правом дочернем отрисовка объектов, в левом - информация о них, и переключатели что рисовать, в виде листбоксов и комбобоксов.

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

 Кто знает как это дебажить, как с этим бороться? Эта пакость - особенность сплит контейнера? Подскажите пожалуйста. Возможно у меня в ОнПэйнтах много лишнего, например там каждый раз заполняются комбобоксы и списки, это очень быдлокод? Заранее спасибо.


PM MAIL   Вверх
ZmeyNet
Дата 21.4.2010, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 25.1.2008
Где: Belarus, Minsk

Репутация: нет
Всего: нет



GenkaRu,  то что onpaint дергается часто - нормально. То что ваша логика не связанная именно с отрисовкой там находится - не нормально 

Цитата

Возможно у меня в ОнПэйнтах много лишнего, например там каждый раз заполняются комбобоксы и списки, это очень быдлокод? 

очень 
списки должны быть заполнены ДО отрисовки, а так получается только мы отрисовали 1 айтем и тут его обновили , он дергает ОNChange ,а тот опять просит себя перерисовать...
PM MAIL ICQ Skype   Вверх
Heinzz
Дата 22.4.2010, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 12.12.2008
Где: .net

Репутация: 1
Всего: 9



OnPaint в студию


--------------------
user posted image
PM MAIL   Вверх
GenkaRu
Дата 24.4.2010, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 5.4.2010

Репутация: нет
Всего: нет



Спасибо, не получится до отрисовки, я рисую объекты в окне, и они добавляются в список, точнее теперь это уже таблица, но обновление итемов из пейнта я убрал!

 Вот OnChange беспокоит, что же, получается если вызвать у контрола invalidate(Rect), он обновит только этот самый рект, а потом поймёт, что его изменили, выбросит OnChangе, который позовёт OnPaint и всё равно перерисует себя полностью?  smile 

OnPain всё время меняю и дописываю сейчас, пока работает приемлемо, но надо ещё много чего прикрутить, а работает всё как-то медленнее и медленнее, в общем сначала допишу, потом буду оптимизировать)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0610 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.