繁体   English   中英

控件中的嵌入式窗体或用户控件的窗体

[英]Embedded Form in a control or Form as User Control

好吧,我有一个大型CRUD应用程序,使用带有嵌入在其中的表单的选项卡,如此 - >

public static void ShowFormInContainerControl(Control ctl, Form frm)
    {
        frm.TopLevel = false;
        frm.FormBorderStyle = FormBorderStyle.None;
        frm.Dock = DockStyle.Fill;
        frm.Visible = true;
        ctl.Controls.Add(frm);
    }

然后我在父表单的表单加载事件中调用以下 - >

 // Embedd the child form in the this Parent
        WinFormCustomHandling.ShowFormInContainerControl(pnlModuleHost, _frmWWCModuleHost);

这是我在这里回答我之前提出的问题。

随着我的进步,我不断得到这样一种感觉,即多层嵌入式表格是等待发生的灾难,用户控件不断弹出。 有人能为我提供一些关于使用用户控件和嵌入表单的具体建议吗?

请参阅我之前的问题,了解这个问题的灵感。 这里

此外,还可以在此处找到我当前嵌入的表单布局在行动中的屏幕截图。

谢谢

我的观点是,你选择哪个方向可能无关紧要。 我会选择使用用户控件,因为它是更标准的方法,并且可以让您在未来获得更大的灵活性。 例如,如果您的客户来找您并说他们希望将两个标签组合到一个标签中,该怎么办? 用户控件允许您将这两个控件放到一个选项卡上而不需要将控件组合成一个表单,然后在需求再次更改时将其更改回下个月。

你有一个庞大而复杂的应用程序,它有许多部分,据我所知,需要相互通信。 我认为您应该问自己的问题不是“表单或用户控件?”。 你应该问自己的问题是,“这是这个应用程序的正确架构吗?”。

我认为包含插件式架构的设计可能更适合您拥有的许多移动部件......或者您可以查看Microsoft的模式和实践复合应用程序块( CAB

我会使用UserControl,它认为只是更简单,你可以看到设计师中发生了什么(如果你想),如果你只是想把它作为容器中的一个视图使用它,那么你将永远不需要它。

将此与您的方法进行比较:

public static void DockControl(this Control control, UserControl userControl)
            {
                userControl.Dock = DockStyle.Fill;
                control.Controls.Clear();
                control.Controls.Add(userControl);
            }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM