我应该在构造函数还是 FormLoad() 中加载子表单?

我有一些代码调用在控件中嵌入表单的自定义类。我最初一直在构造函数之外声明我的子表单,然后在 FormLoad() 中调用 FormPaint() 例程,然后像这样加载表单:

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

现在我看到了一种在容器控件中嵌入表单的更好方法,因为它与我的自定义类 here 相关。

我的问题是我应该在哪里加载它们,因为示例将它们加载到构造函数中同时声明它们,如下所示:
public frmWWCModuleHost()
{
    InitializeComponent();
    WinFormCustomHandling.ShowFormInContainerControl(tpgCaseNotes, new XfrmTest());
}

显然,这是少得多的代码。通过在构造函数中加载,我会使用更多不必要的资源吗?我会有所收获吗?我如何决定?

最佳答案

有趣的问题 Mr_Mom。我的建议是使用您的构造函数只执行子表单所需的设置,并将子表单的加载推迟到父 formLoad()。

至于资源,得失……我不知道。

10-07 16:10