Какое последнее событие пользовательского элемента управления срабатывает при загрузке приложения/элемента управления? Событие загрузки?

7
Saif Khan 3 Июн 2009 в 23:58
Когда будет запущено последнее событие? При первом появлении, при выключении? Пожалуйста уточни.
 – 
Jeff Yates
4 Июн 2009 в 00:00

2 ответа

Это действительно зависит от того, когда во время его жизни вы говорите. Учитывая ваше предположение о загрузке, мы разговариваем во время создания/загрузки. В этом списке показаны несколько событий в том порядке, в котором они были запущены в простом UserControl, который я настроил для тестирования (подключил несколько прослушивателей событий и напечатал имя события в консоли):

HandleCreated
Load
Layout
VisibleChanged
Paint

Обратите внимание, что Layout, VisibleChanged и Paint не имеют ничего общего с созданием элемента управления; Макет и, в частности, Paint могут или будут возникать несколько раз в течение срока действия элемента управления. То же самое касается VisibleChanged, который вызывается всякий раз, когда изменяется значение свойства Visible.

9
Fredrik Mörk 4 Июн 2009 в 00:09
1
+1 - ты меня опередил. У меня тот же результат - краска последняя. Также обратите внимание, что CreateControl происходит между HandleCreated и Load, а PaintBackground — перед Paint.
 – 
Jon B
4 Июн 2009 в 00:15
B: нет события PaintBackground, но есть защищенный метод OnPaintBackground (который очень похож на ваш стандартный метод создания событий, но не вызывает никаких событий). В любом случае CreateControl и OnPaintBackground можно использовать только внутри пользовательского элемента управления, а не из внешнего кода (например, из формы, содержащей элемент управления).
 – 
Fredrik Mörk
4 Июн 2009 в 00:25
Б: забыл упомянуть; хорошие моменты с этими двумя методами еще! :)
 – 
Fredrik Mörk
4 Июн 2009 в 00:26

Элементы управления Winforms не имеют жизненного цикла в том же смысле, что и элементы управления веб-формами asp.net. События пользовательского интерфейса происходят, когда пользователь делает что-то, чтобы они произошли.

0
Joel Coehoorn 4 Июн 2009 в 00:04