Событие загрузки, возникающее в ResumeLayout (false) при использовании стилей Infragistic - PullRequest
0 голосов
/ 22 декабря 2010

У меня проблема при использовании стилей Infragistics, проблема связана с преждевременным возникновением события Load.

Некоторый контекст:

  • У меня есть представление, представленное UserControl
  • Когда я хочу показать этот пользовательский элемент управления, я создаю новый экземпляр и добавляю его в форму «хоста», которая имеет дополнительное поведение, не относящееся к проблеме.

Если я не использую стили, событие Load обычно вызывается при отображении формы, чего я и ожидаю, но если я использую метод StyleManager.Load и загружаю стиль, тогда событие Load объекта UserControl вызывается при выполнении ResumeLayout(false) на одной из моих панелей, что происходит в методе InitializeComponents в конструкторе.

Это ожидаемое поведение? Кто-нибудь сталкивался с такой же проблемой?


редактировать : Кажется, это происходит только со стилем Office2007, если я использую Office2010, все работает нормально

Спасибо

1 Ответ

0 голосов
/ 22 декабря 2010

Довольно типичная потеря инфраструктуры.Обычно это может произойти, когда конструктор выполняет любой код, для которого требуется, чтобы свойство Handle было допустимым.Это вызывает запуск метода CreateHandle, который, в свою очередь, вызывает событие Load.Вы не опубликовали трассировку стека, поэтому нет способа увидеть, какой код вызывает это.Я не сомневаюсь, что это код инфраструктуры.Получите их последние обновления, напишите на их форум поддержки, если вы хотите их поддержку.И попробуйте переместить код из вашего обработчика события Load в конструктор, вам когда-либо понадобится Load только в том случае, если у вас есть код, требующий, чтобы размер формы был известен.

...