Pergunta

Devo carga criança formas no construtor ou o FormLoad ()?

Eu tenho algum código que está chamando uma classe personalizada que incorpora uma forma de controle. Eu tinha sido originalmente declarando meu filho formas fora do Construtor e, em seguida, chamar uma rotina FormPaint () no FormLoad () para, em seguida, carregar os formulários assim:

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

Agora me foi mostrado uma maneira muito melhor de incorporar formas em controles do recipiente, no que se refere à minha classe personalizada, aqui .

A minha pergunta é onde eu deveria estar carregando-os como o exemplo tem-los a ser carregado no Construtor declarando-os, ao mesmo tempo, assim:

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

O que é, obviamente, muito menos código. Ao carregar no construtor eu vou estar usando recursos muito mais desnecessários? Vou estar a ganhar alguma coisa? Como faço para decidir?

Foi útil?

Solução

Mr_Mom pergunta interessante. Minha recomendação seria usar seus construtores por fazer apenas a configuração necessária para os sub formas e adiar o carregamento dos sub formas até que o FormLoad parent ().

Quanto aos recursos, ganhos e losts ... Eu não sei.

Outras dicas

Eu prefiro construtor do formulário uso. Quero dizer configurar tudo antes uma forma seria mostrado, não depois.

A redução da complexidade para fora vai aumentar a legibilidade e deve reduzir possíveis erros.

Em uma tangente, nunca relançar uma exceção usando lance ex; Ele vai redefinir a pilha de chamadas. uso apenas a dois passos;

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top