3

理论上你可以从表单派生,但这是你不应该做的事情吗?我直觉上是这么认为的,但我从来没有听说过这样的规则。

我的意思是一些已经从 Form 派生的具体类。例如,如果我有class MyForm : Form,问题是:我可以从MyForm吗?

4

6 回答 6

5

创建新的 Windows 窗体时,您应该从 Form 派生。在 Visual Studio 中创建新表单时,您获得的源文件已经派生自 Form.

于 2009-04-23T10:57:06.837 回答
4

没有硬性规定可以阻止您派生 windows 窗体。如果您有充分的理由这样做(例如,在您的项目中的所有表单中加入一些共同的功能),那么请继续。

于 2009-04-23T10:53:26.610 回答
2

从通用基类 Form 派生类派生表单是完全合理的,并且对于为您的应用程序提供标准外观很有用。

于 2009-04-23T11:42:02.627 回答
1

我们已经成功地从表单派生了一个类,然后从它派生了项目中的所有表单。它使我们能够轻松地应用项目范围的策略。我们所有的表格都有一致的外观和感觉。它还使每个表单都可以轻松记住其大小和位置。

于 2009-04-23T12:12:44.017 回答
1

我强烈建议从 BaseForm 继承。这很容易让所有的 EditForm 看起来都像,因为您可以在基础上设置通用控件(如按钮),给它们一个背景色/图像等。所有可以分组的表单也是如此。我通常有 1 个 BaseForm,然后根据它的“组”(编辑、列表、对话框......)再有一个 BaseForm

它让你的 winapp 看起来更加一致。

代码也是如此,通常编辑表单具有相似的代码库:验证,保存逻辑,......您可以将所有这些逻辑放在基本表单上,然后有一些可以在子表单上实现的抽象方法。

于 2009-04-23T12:19:54.017 回答
0

这个问题真的取决于你的派生类做了什么。

表单和许多此类最终类旨在执行许多复杂的任务,以使您充分利用与表单相关的活动,而无需编写太多代码。

规则是这样的,“如果你打算做一个简单的窗口操作,并且如果它不会干扰常规行为,那么最好不要从形式派生。

或者由于表单负载很重,您可以通过从基类而不是表单派生它来节省内存和 CPU 时间。

于 2009-04-23T11:00:33.363 回答