与ASP.NET中的母版页一样,我们是否对Windows窗体应用程序有任何类似的概念。因此,我不必在整个应用程序中多次重复相同的表单部分(页眉和页脚)。
答案 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所提到的更有意义。