2009-05-04 83 views
5

好我有一个使用卡口与嵌入其中,像这样形成大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); 
    } 

我然后调用下面窗体的Load事件父窗体 - >

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

这是给我HERE响应我刚才的问题。

随着我在这方面取得进展,我不断感受到多层嵌入式表单是一种等待发生的灾难,并且用户控件一直弹出。任何人都可以提供一些关于使用用户控件vs嵌入窗体的具体建议吗?

看到我以前的问题,为这一个灵感。 HERE

此外,我的当前嵌入式表格布局看起来像在行动中的屏幕截图可以找到HERE

谢谢

回答

2

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

比较这对你的方法:

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

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

你有一个庞大而复杂的应用程序,有许多件,据我所知,需要彼此沟通。我认为你应该问自己的问题不是“表单或用户控制?”。你应该问自己的问题是,“这个应用程序的架构是否合适?”。

我觉得一个,纳入一个插件式架构而可能更适合你有许多移动部件的设计...或者你可以先看看微软的模式与实践复合应用程序块(CAB

+0

有趣的是,将有可能为你解释一下你的“插件式”架构是什么意思?你是指抽象形式是什么,并且具有不同的可互换的UC来执行这些基本功能? – 2009-05-04 18:40:01