Para Form Load () o no formar Load ()
-
05-09-2019 - |
Pregunta
¿Debo cargar formularios secundarios en el constructor o el FormLoad ()?
Tengo algo de código que se llama una clase personalizada que incorpora un formulario en un control. Había sido originalmente declarar mis formularios secundarios fuera del Constructor y luego llamar a una rutina FormPaint () en el FormLoad () para luego cargar los formularios de esta manera:
internal frmWWCMCPHost frmWWCMCPHost = new frmWWCMCPHost();
internal frmWWCEnrollmentHost frmWWCEnrollmentHost = new frmWWCEnrollmentHost();
internal frmWWCMemberHost frmWWCMemberHost = new frmWWCMemberHost();
public frmWWCModuleHost()
{
InitializeComponent();
}
private void frmWWCModuleHost_Load(object sender, EventArgs e)
{
FormPaint();
}
public void FormPaint()
{
WinFormCustomHandling.ShowFormInControl(frmWWCMCPHost, ref tpgMCP, FormBorderStyle.FixedToolWindow,-4,-2);
WinFormCustomHandling.ShowFormInControl(frmWWCMemberHost, ref tpgMember, FormBorderStyle.FixedToolWindow, -4, -2);
WinFormCustomHandling.ShowFormInControl(frmWWCEnrollmentHost, ref tpgEnrollment, FormBorderStyle.FixedToolWindow, -4, -2);
// Call each top-Level (visible) tabpage's form FormPaint()
frmWWCMCPHost.FormPaint();
}
Ahora me ha mostrado una forma mucho mejor de incorporar formas en controles contenedores, en lo que respecta a mi clase personalizada, aquí .
Mi pregunta es dónde debería estar cargando estos como el ejemplo que ha de ser cargado en el constructor de ellos declarando al mismo tiempo, de esta manera:
public frmWWCModuleHost()
{
InitializeComponent();
WinFormCustomHandling.ShowFormInContainerControl(tpgCaseNotes, new XfrmTest());
}
¿Qué es, obviamente, mucho menos código. Al cargar en el constructor voy a utilizar muchos más recursos innecesarios? ¿Voy a estar ganando algo? ¿Cómo decidir?
Solución
Interesante pregunta Mr_Mom. Mi recomendación sería utilizar sus constructores que ver solamente la configuración necesaria para las formas secundarias y poner fuera de la carga de las formas hasta que el sub FormLoad parent ().
En cuanto a los recursos, las ganancias, y losts ... No sé.
Otros consejos
Yo prefiero usar el constructor del formulario. Me refiero a todo configurado antes de una forma sería mostrado, no después.
La reducción de la complejidad externa aumentará la legibilidad y debería reducir posibles errores.
En la tangente, nunca jamás volver a lanzar una excepción usando tiro ex; Se va a restablecer la pila de llamadas. Sólo tiene que utilizar tiro;