.net 使用OOP技术创建windows窗体

.net 使用OOP技术创建windows窗体,.net,winforms,oop,layer,.net,Winforms,Oop,Layer,我需要创建5个类似的windows窗体,每个窗体上都有一点更改。一个可能有几个额外的文本框,另一个可能有较少的字段。数据表是分开的,但功能是相同的。我将创建一个包含所有相关TableAdapter的数据集。然后我将有另一层“业务逻辑”来填充表中的数据。使用“面向对象”技术创建表单的正确方法是什么?我如何实现这一点?首选。就像Steven说的那样,你应该真正关注组合而不是继承,所以制作更小的控件,完全满足你的需要,然后在每个表单中添加一些控件。然而,如果你真的开始继承,你可以用Winforms来继

我需要创建5个类似的windows窗体,每个窗体上都有一点更改。一个可能有几个额外的文本框,另一个可能有较少的字段。数据表是分开的,但功能是相同的。我将创建一个包含所有相关TableAdapter的数据集。然后我将有另一层“业务逻辑”来填充表中的数据。使用“面向对象”技术创建表单的正确方法是什么?我如何实现这一点?

首选。

就像Steven说的那样,你应该真正关注组合而不是继承,所以制作更小的控件,完全满足你的需要,然后在每个表单中添加一些控件。然而,如果你真的开始继承,你可以用Winforms来继承,我很确定有一个向导甚至可以让你从现有的表单继承

OOP取决于你和谁交谈,如果它是来自C++背景的人,那么他们无疑会在OO的上下文中说多态性和继承,但是如果你和java和.NET的人谈论OO,他们可能会更多地关注封装和合成。


继承仍然有它的地位,只是大多数问题可以通过组合更容易、更好地解决。

您可以创建自定义控件,使用具有所有公共内容的基类,然后随心所欲地继承它。谢谢您的回复。举一个具体的例子,假设我需要创建一个表单“form a”,其中包含10个文本框和一个包含5列的网格控件,还需要创建另一个表单“form B”,其中包含12个文本框,其中10个与“From a”中的相同,还有一个包含4列的网格控件。我如何使用“组合重于继承”实现这一点?您将创建一个包含10个文本框的usercontrol和一个包含12个文本框的usercontrol(或者您可以将其中一个包含10个文本框并继承一个新控件再添加2个),然后您将其添加到表单中,因此表单的行为是由单独的用户控件组成的,而不是继承。通过这种方式,如果您需要将一个表单的10个文本框更改为9,您只需使用9创建一个新的usercontrol并将其添加到给定表单,而不必在使用直接继承时更改每个表单。