我应该在构造函数还是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());
}
显然,代码要少得多。通过在构造函数中加载,我会使用更多不必要的资源吗?我会得到什么吗?我该如何决定?
发布于 2009-02-18 20:53:42
有趣的问题Mr_Mom。我的建议是使用您的构造函数仅完成子窗体所需的设置,并推迟加载子窗体,直到父formLoad()。
至于资源、收益和损失……我不知道。
发布于 2009-02-18 21:23:35
我更喜欢使用form的构造函数。我的意思是在之前设置所有的表单将被显示,而不是在之后。
发布于 2009-02-18 18:59:08
减少向外的复杂性将增加可读性,并应减少可能的错误。
https://stackoverflow.com/questions/562098
复制相似问题