.net 如何设计具有相同结构的windows窗体?

.net 如何设计具有相同结构的windows窗体?,.net,windows,winforms,user-interface,master-pages,.net,Windows,Winforms,User Interface,Master Pages,在web编程中,您有一个或多个母版页和一些内容页,您可以在其中向母版的占位符或访问元素添加一些内容。 我的问题是如何处理具有相同格式的windows窗体,比如页眉、内容和页脚。页脚总是相同的,页眉可能略有不同,内容也总是不同(有时是网格视图,有时是下拉列表,等等) 如果您从其他表单派生一个表单,我发现您无法访问主表单元素。因此,我是否应该只创建用户控件,并使用用户控件单独创建每个窗体,而不使用继承?使用继承,并确保您尝试访问的主窗体中的元素声明为(或公共) 通过这种方式,可以从子窗体中看到元素。

在web编程中,您有一个或多个母版页和一些内容页,您可以在其中向母版的占位符或访问元素添加一些内容。 我的问题是如何处理具有相同格式的windows窗体,比如页眉、内容和页脚。页脚总是相同的,页眉可能略有不同,内容也总是不同(有时是网格视图,有时是下拉列表,等等)
如果您从其他表单派生一个表单,我发现您无法访问主表单元素。因此,我是否应该只创建用户控件,并使用用户控件单独创建每个窗体,而不使用继承?

使用继承,并确保您尝试访问的主窗体中的元素声明为(或公共)


通过这种方式,可以从子窗体中看到元素。

您应该创建一个类,该类将私有窗体作为变量,并带有两个标签,只要您需要就可以。然后可以采取两种方法:

  • 公开一些属性,如SaveFileDialog,它们表示您希望自定义的内容。在setter中,将标签、图片框等设置为正确的值。然后,创建一个没有参数的show方法,并在其中显示表单

  • 只公开一个show方法,比如在MessageBox中,并添加所有可定制的部分作为参数


  • 不要对表单进行子类化,因为这将是一个混乱;人们可以自定义您不希望他们自定义的内容。

    实现这一点的廉价方法是让您的内容控件在UI中相互重叠。 只有一个窗体可以显示所有控件,但在运行时只有相应的控件可见

    您还可以为向导的不同屏幕使用选项卡控件。 这取决于用户界面的复杂程度