2009-06-03 12 views

Respuesta

0

Los controles de Winforms no tienen un ciclo de vida en el mismo sentido en que lo hacen los controles de asp.net webforms. Los eventos de IU suceden cuando el usuario hace algo para que sucedan.

8

Eso realmente depende de cuando durante su vida está hablando. Dada tu conjetura sobre Load, hablamos durante la creación/carga. Esta lista muestra algunos eventos en el orden en que fueron despedidos en un simple control de usuario que he creado para la prueba (conectado una serie de procesadores de eventos e impreso el nombre del evento a la consola):

HandleCreated 
Load 
Layout 
VisibleChanged 
Paint 

Tenga en cuenta que Layout , VisibleChanged y Paint no tienen nada que ver estrictamente con la creación del control; Disposición y, en particular, la pintura puede o se levantará en varias ocasiones durante la vida del control. Lo mismo ocurre con VisibleChanged que se genera cada vez que se cambia el valor de la propiedad Visible.

+1

+1 - me ganaste. Obtuve el mismo resultado: la pintura es la última. También tenga en cuenta que CreateControl ocurre entre HandleCreated y Load, y PaintBackground sucede antes de Paint. –

+0

@Jon B: no hay evento PaintBackground, pero existe el método protegido OnPaintBackground (que se parece mucho al método estándar de suceso, pero eso no plantea ningún evento). De cualquier forma, CreateControl y OnPaintBackground pueden usarse solo dentro del control de usuario, no desde un código externo (como el formulario que aloja el control). –

+0

@Jon B: olvidé mencionar; buenos puntos con esos dos métodos todavía! :) –

Cuestiones relacionadas