![]() |
Модераторы: gambit, Partizan |
![]() ![]() ![]() |
|
GenkaRu |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 5.4.2010 Репутация: нет Всего: нет |
Вопрос скорее общий, помогите пожалуйста, кто знает, ситуация такая: Есть главная mdi форма, у неё есть 2 дочерних окна, и в главной форме размещён split container, а к нему уже привязаны эти дочерние окна, к первой и второй его панелям соответственно.
В правом дочернем отрисовка объектов, в левом - информация о них, и переключатели что рисовать, в виде листбоксов и комбобоксов. Проблема в том, что стоит сделать что угодно, как то повести мышкой над левой панелью, или над комбобоксом, или поменять выбранный элемент, или нарисовать что-то в правой панели, или не дай бог вызвать инвалидейт у какого-то элемента - вызывается шквал перерисовок всего и вся начиная с главного окна. Если, скажем, поставить брейкпойнт на On_Paint левой панели, где куча комбобксов, то в дебаггере видно, что это событие вызывается снова и снова, может быть по числу элементов в панели, в том числе многократно вызывается On_Paint для правой панели, где вообще ничего не менялось. Кто знает как это дебажить, как с этим бороться? Эта пакость - особенность сплит контейнера? Подскажите пожалуйста. Возможно у меня в ОнПэйнтах много лишнего, например там каждый раз заполняются комбобоксы и списки, это очень быдлокод? Заранее спасибо. |
|||
|
||||
ZmeyNet |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 25.1.2008 Где: Belarus, Minsk Репутация: нет Всего: нет |
GenkaRu, то что onpaint дергается часто - нормально. То что ваша логика не связанная именно с отрисовкой там находится - не нормально
очень списки должны быть заполнены ДО отрисовки, а так получается только мы отрисовали 1 айтем и тут его обновили , он дергает ОNChange ,а тот опять просит себя перерисовать... |
|||
|
||||
Heinzz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 381 Регистрация: 12.12.2008 Где: .net Репутация: 1 Всего: 9 |
OnPaint в студию
|
|||
|
||||
GenkaRu |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 5.4.2010 Репутация: нет Всего: нет |
Спасибо, не получится до отрисовки, я рисую объекты в окне, и они добавляются в список, точнее теперь это уже таблица, но обновление итемов из пейнта я убрал!
Вот OnChange беспокоит, что же, получается если вызвать у контрола invalidate(Rect), он обновит только этот самый рект, а потом поймёт, что его изменили, выбросит OnChangе, который позовёт OnPaint и всё равно перерисует себя полностью? ![]() OnPain всё время меняю и дописываю сейчас, пока работает приемлемо, но надо ещё много чего прикрутить, а работает всё как-то медленнее и медленнее, в общем сначала допишу, потом буду оптимизировать) |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |