Frage

Sollte lade ich Kind Formulare im Konstruktor oder die Formload ()?

Ich habe einige Code, der eine benutzerdefinierte Klasse ruft die ein Formular in einem Steuer einbettet. Ich hatte ursprünglich gewesen mein Kind Formen außerhalb des Constructor deklarieren und dann eine Formpaint () Routine im Formload () aufrufen, um dann die Formen zu laden etwa so:

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

Jetzt wurde ich eine viel bessere Möglichkeit der Einbettung von Formen in Containersteuer gezeigt, wie es um meine eigene Klasse betrifft, hier .

Meine Frage ist, wo soll ich diese als Beispiel werden Laden hat sie im Constructor geladen sie zugleich erklärt, etwa so:

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

Was ist offensichtlich viel weniger Code. Durch die im Konstruktor Laden werde ich weit mehr unnötige Ressourcen verwenden? Will ich gewinnen etwas sein? Wie entscheide ich?

War es hilfreich?

Lösung

Interessante Frage Mr_Mom. Meine Empfehlung wäre, Ihre Konstrukteure verwenden nur das Setup für die Unterformen erforderlich machen und die Unterformen, bis die Mutterformload Laden aufschieben ().

Wie für Ressourcen, Gewinne und losts ... Ich weiß es nicht.

Andere Tipps

Ich ziehe Form Konstruktor zu verwenden. Ich meine Setup alles vor eine Form gezeigt werden würde, nicht nach.

Die Reduzierung der Komplexität nach außen wird die Lesbarkeit erhöhen und soll mögliche Fehler reduzieren.

Auf einer Tangente, jemals nie eine Ausnahme mit throw ex erneut auslösen; Es wird den Call-Stack zurückgesetzt. Verwenden Sie einfach throw;

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top