Domanda

Devo caricare i form figlio nel costruttore o il FormLoad ()?

Ho qualche codice che sta chiamando una classe personalizzata che incorpora una forma in un controllo. Avevo inizialmente stato dichiarato le mie forme figlio al di fuori del costruttore e quindi chiamando una routine FormPaint () nella FormLoad () per poi caricare le forme in questo modo:

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();
}

Ora mi è stato mostrato un modo molto migliore di incorporare forme di controlli contenitore, in quanto si riferisce alla mia classe personalizzata, qui .

La mia domanda è dove dovrei caricamento di questi come l'esempio è che vengano caricati nel costruttore dichiarando allo stesso tempo, in questo modo:

public frmWWCModuleHost()
{
    InitializeComponent();
    WinFormCustomHandling.ShowFormInContainerControl(tpgCaseNotes, new XfrmTest());
}

Il che è, ovviamente, molto meno codice. Caricando nel costruttore mi verrà l'utilizzo di risorse di gran lunga più inutili? Sarò guadagnando qualcosa? Come faccio a decidere?

È stato utile?

Soluzione

Interessante domanda Mr_Mom. La mia raccomandazione sarebbe quella di utilizzare i vostri costruttori di fare solo la configurazione necessaria per le forme secondarie e mettere fuori caricare le forme secondarie fino alla FormLoad genitore ().

Per quanto riguarda le risorse, guadagni, e losts ... non lo so.

Altri suggerimenti

Io preferisco usare il costruttore di modulo. Voglio dire messa a punto tutto prima una forma sarebbe stata mostrata, non dopo.

La riduzione della complessità verso l'esterno aumenterà la leggibilità e dovrebbe ridurre i possibili errori.

per la tangente, mai e poi mai rigenerare un'eccezione utilizzando due ex; Sarà ripristinato lo stack di chiamate. Basta usare tiro;

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top