vida shown net formulario form evento event despues ciclo c# winforms constructor onload

shown - main form load event c#



Constructor de formularios vs Form_Load (2)

Esta pregunta ya tiene una respuesta aquí:

¿Cuál es la diferencia entre un constructor de formularios y el método form_Load?

¿Cuál es tu proceso para colocar los artículos en uno frente al otro?


No use el evento de carga, anule el método OnLoad (). Eso garantiza que todo se ejecute en un orden predecible cuando se deriva de la clase de formulario. Solo debe usarlo para la inicialización de formularios que requiera el tamaño del formulario real para que se conozca. Puede ser diferente del tamaño del diseño debido a la escala o las preferencias del usuario, y el tamaño real no se conoce hasta que se crea la ventana nativa.

Inicializar los controles en el método OnLoad es posible, pero puede ser muy lento, especialmente para ListView y TreeView. Si los inicializa en el constructor, se pueden inicializar en masa cuando se crean sus controles nativos de Windows.

Una excepción especial: la creación de una ventana secundaria MDI siempre se debe hacer en OnLoad (), hay un error en el código de plomería que desordena la barra MDI cuando creas un elemento secundario en el constructor.


El código en el constructor se ejecuta inmediatamente cuando crea el formulario, ya sea que lo muestre o no. El código que se ejecuta en el evento Form.Load es un controlador de eventos, por lo que realmente puede tener código en otras clases (que se hayan suscrito al formulario) ejecutando el código allí. De manera similar, puede (desde el formulario) usar el método Form.OnLoad para ejecutar el código.

El evento de carga del formulario (y el método anulable de OnLoad, que a menudo es una mejor opción en el formulario) se ejecuta después de que el formulario se haya inicializado. Esto a menudo tiene ventajas, ya que todos los controles del formulario ya se han construido, y lo que es más importante, todo el diseño del formulario se ha producido.