【问题标题】:Creating windows forms using OOP technique使用 OOP 技术创建窗体
【发布时间】:2012-09-19 09:00:12
【问题描述】:

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

【问题讨论】:

  • 您可以创建自定义控件,使用具有所有常见事物的基类,然后随意继承它。

标签: .net winforms oop layer


【解决方案1】:

就像 Steven 所说,您应该真正关注组合而不是继承,因此制作更小的控件来完全满足您的需要,然后只需将其中一些控件添加到每个表单中即可。但是,如果您真的打算继承,您可以使用 Winforms 来实现,我很确定有一个向导甚至可以让您从现有表单中继承。

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

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

【讨论】:

  • 感谢您的回复。举一个具体的例子,假设我需要创建一个带有 10 个文本框和一个包含 5 列的网格控件的表单“Form A”,还需要创建另一个带有 12 个文本框的表单“Form B”,其中 10 个与“From A" 和一个也有 4 列的网格控件。我将如何使用“组合而不是继承”来实现这一点
  • 您将创建一个包含 10 个文本框的用户控件和一个包含 12 个文本框的用户控件(或者您可以用 10 个创建一个并继承一个新控件,再添加 2 个)然后您将其添加到您的表单中,因此表单的行为由单独的用户控件组成,而不是继承。这样,如果您需要将一个表单的 10 个文本框更改为 9 个,您只需使用 9 创建一个新的用户控件并将其添加到给定的表单,而不是在使用直接继承时更改每个表单。
【解决方案2】:

【讨论】:

    猜你喜欢
    • 2010-12-27
    • 1970-01-01
    • 2019-08-17
    • 2017-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多