Здравствуйте, MxMsk, Вы писали:
MM>Здравствуйте, andrewr, Вы писали:
A>>Exception Information
A>>*********************************************
A>>Exception Type: System.ComponentModel.Win32Exception
A>>NativeErrorCode: 8
MM>Так. Если я правильно понимаю, то "NativeErrorCode: 8" — это ERROR_NOT_ENOUGH_MEMORY.
Ага. Наконец то я уверен в этой ошибке
A>>Сразу обмолвлюсь, что форму создавал другой человек, которого уже не найти. Ессно клиент переделывать во что-то более внятное не хочет, потому у меня есть несколько вопросов:
A>>1. Ошибка возникает потому что не хватает памяти, или дескрипторов окна?
MM>Скорее всего слишком много дескрипторов. Правда я с этим не сталкивался.
Ну реально на кастом контроле около 5 лейблов, которые ессно создают свой дескриптор окна. Сейчас я переубеждаю клиента в том, что нужно эти лейблы менять на овн-дравинг.
A>>2. Что можно сделать для убыстрения формы, или хотя бы устранения подобной ошибки?
MM>Виртуализовать. Пользователь же не все 900 контролов видит одновременно. Еще вариант, попробовать реализовать некоторые контролы без хэндла — просто как графический элемент (если такое возможно, конечно).
В том то и дело, что для виртуализации нужно делать оч много переделок самой формы. Она изначально была сделана без учета подобных проблем, да и раньше надо было загружать не более 10-12 элементов. Как я сказал выше, буду продавливать замену всех лишних контролов на их отрисовку. Там даже чекбокс можно на отрисованный поменять без особой внешней разницы.
В целом все ясно. Тему можно закрывать. Спасибо откликнувшимся.