【发布时间】:2010-10-18 12:43:29
【问题描述】:
像 ASP.NET 中的母版页一样,我们是否对 Windows 窗体应用程序有任何类似的概念。这样我就不必在整个应用程序中多次重复表单的同一部分(页眉和页脚)。
【问题讨论】:
像 ASP.NET 中的母版页一样,我们是否对 Windows 窗体应用程序有任何类似的概念。这样我就不必在整个应用程序中多次重复表单的同一部分(页眉和页脚)。
【问题讨论】:
与母版页并不完全相同,但您可以创建一个带有页眉和页脚的控件(例如基于 UserControl),您的所有其他表单都可以根据需要继承(或构造)。
【讨论】:
是的。
您需要做的是创建您的“主”表单,添加您想要的所有 UI、默认按钮等。
对于按钮之类的东西,我通常将处理 Click 事件的方法创建为“虚拟”,以便我可以在我正在构建的实际形式中实现它们。
一旦“主”表单构建完成,您需要做的是右键单击项目并选择“新建项目”。完成此操作后,如果您使用的是 VS.Net 2008,则可以单击“Windows 窗体”类别,然后选择“继承的窗体”。
完成此操作后,系统会要求您从项目中的哪个表单继承。只需选择“主”表单,您就应该设置好了。
【讨论】:
将主表单创建为带有页眉和页脚的表单,但中间留空。
将“内页”实现为具有通用界面的UserControl,并根据需要进行更改。 (Header、Contentpanel 和 Footer 是 Windows.Form.Panel)。
-------------------------------
| Header |
------------------------------- ______________
| | | |
| ContentPanel | <---- | MonkeyEdit |
| | |____________|
-------------------------------
| Footer |
-------------------------------
并将内容实现为
public class MonkeyEdit : UserControl, IContent
{
}
实现一个接口是有用的,但不是必需的。之后,根据事件/配置,只需使用 Dock.Fill 将 MonkeyEdit 加载到 ContentPanel 中。正如您在另一篇文章中看到的那样,您也可以继承“主表单”。
【讨论】:
您可以通过继承实现类似的功能;您创建一些带有重复控件的父表单,然后将这个父表单用于您需要的每个自定义表单。
【讨论】:
添加一个继承自Form的类,添加页眉和页脚(在代码中),然后让所有新表单都继承自该类。
【讨论】:
母版页可以指定嵌入页面的内容区域。因此,从表格 A 派生表格,例如表格 B 并获取父表格的特征并不能证明这一点。 Boj 提到的更有意义,因为我们在哪里使用 Panels。
【讨论】: