首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >形成Load()或不形成Load()

形成Load()或不形成Load()
EN

Stack Overflow用户
提问于 2009-02-18 17:37:56
回答 4查看 960关注 0票数 4

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

我有一些代码调用在控件中嵌入窗体的自定义类。我最初是在构造函数外部声明我的子窗体,然后调用FormLoad()中的FormPaint()例程来加载窗体,如下所示:

代码语言:javascript
运行
复制
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相关。

我的问题是,我应该在哪里加载它们,因为示例将它们加载到同时声明它们的构造函数中,如下所示:

代码语言:javascript
运行
复制
public frmWWCModuleHost()
{
    InitializeComponent();
    WinFormCustomHandling.ShowFormInContainerControl(tpgCaseNotes, new XfrmTest());
}

显然,代码要少得多。通过在构造函数中加载,我会使用更多不必要的资源吗?我会得到什么吗?我该如何决定?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-02-18 20:53:42

有趣的问题Mr_Mom。我的建议是使用您的构造函数仅完成子窗体所需的设置,并推迟加载子窗体,直到父formLoad()。

至于资源、收益和损失……我不知道。

票数 2
EN

Stack Overflow用户

发布于 2009-02-18 21:23:35

我更喜欢使用form的构造函数。我的意思是在之前设置所有的表单将被显示,而不是在之后。

票数 4
EN

Stack Overflow用户

发布于 2009-02-18 18:59:08

减少向外的复杂性将增加可读性,并应减少可能的错误。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/562098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档