Windows窗体中的主窗体

时间:2009-04-09 10:10:13

标签: windows winforms forms

与ASP.NET中的母版页一样,我们是否对Windows窗体应用程序有任何类似的概念。因此,我不必在整个应用程序中多次重复相同的表单部分(页眉和页脚)。

6 个答案:

答案 0 :(得分:9)

您需要做的是创建“主”表单,添加所需的所有UI,默认按钮等。

对于像按钮这样的东西,我通常创建将Click事件处理为“Virtual”的方法,这样我就可以用我正在构建的实际形式来实现它们。

构建“Master”表单后,您需要做的是右键单击项目并选择“New Item”。完成后,如果您使用的是VS.Net 2008,则可以单击“Windows窗体”类别,然后选择“继承的窗体”。

完成后,系统会要求您继承项目中的哪个表单。只需选择“主”表格,即可进行设置。

答案 1 :(得分:7)

将主窗体创建为带有页眉和页脚的窗体,但将中间留空。

使用通用界面将“内部页面”实现为 UserControl ,并根据需要进行更改。 (Header,Contentpanel和Footer是Windows.Form.Panel)。

-------------------------------
| Header                      |
-------------------------------         ______________
|                             |         |            |
|         ContentPanel        |   <---- | MonkeyEdit |
|                             |         |____________|
-------------------------------
| Footer                      |
-------------------------------

将内容实现为

public class MonkeyEdit : UserControl, IContent
{

}

实现一个有用但不必要的接口。之后,基于事件/配置,只需使用Dock.Fill将 MonkeyEdit 加载到 ContentPanel 中。您也可以将“主表格”包含在内,正如您在另一篇文章中所看到的那样。

答案 2 :(得分:1)

与母版页不完全相同,但您可以创建一个带有页眉和页脚的控件(例如基于UserControl),所有其他表单都可以根据需要继承(或构造)。

答案 3 :(得分:0)

你可以通过继承获得类似的东西;您使用重复的控件创建一些父表单,然后将此父表单用于您需要的每个自定义表单。

答案 4 :(得分:0)

添加一个继承自Form的类,添加页眉和页脚(在代码中),然后让所有新表单从该类继承。

答案 5 :(得分:0)

母版页具有指定嵌入页面的内容区域的功能。因此,从表格A中获取表格B并获得父表格的特征并不能证明这一点。 在我们使用Panels的地方,Boj所提到的更有意义。