理论上你可以从表单派生,但这是你不应该做的事情吗?我直觉上是这么认为的,但我从来没有听说过这样的规则。
我的意思是一些已经从 Form 派生的具体类。例如,如果我有class MyForm : Form
,问题是:我可以从MyForm
吗?
理论上你可以从表单派生,但这是你不应该做的事情吗?我直觉上是这么认为的,但我从来没有听说过这样的规则。
我的意思是一些已经从 Form 派生的具体类。例如,如果我有class MyForm : Form
,问题是:我可以从MyForm
吗?
创建新的 Windows 窗体时,您应该从 Form 派生。在 Visual Studio 中创建新表单时,您获得的源文件已经派生自 Form.
没有硬性规定可以阻止您派生 windows 窗体。如果您有充分的理由这样做(例如,在您的项目中的所有表单中加入一些共同的功能),那么请继续。
从通用基类 Form 派生类派生表单是完全合理的,并且对于为您的应用程序提供标准外观很有用。
我们已经成功地从表单派生了一个类,然后从它派生了项目中的所有表单。它使我们能够轻松地应用项目范围的策略。我们所有的表格都有一致的外观和感觉。它还使每个表单都可以轻松记住其大小和位置。
我强烈建议从 BaseForm 继承。这很容易让所有的 EditForm 看起来都像,因为您可以在基础上设置通用控件(如按钮),给它们一个背景色/图像等。所有可以分组的表单也是如此。我通常有 1 个 BaseForm,然后根据它的“组”(编辑、列表、对话框......)再有一个 BaseForm
它让你的 winapp 看起来更加一致。
代码也是如此,通常编辑表单具有相似的代码库:验证,保存逻辑,......您可以将所有这些逻辑放在基本表单上,然后有一些可以在子表单上实现的抽象方法。
这个问题真的取决于你的派生类做了什么。
表单和许多此类最终类旨在执行许多复杂的任务,以使您充分利用与表单相关的活动,而无需编写太多代码。
规则是这样的,“如果你打算做一个简单的窗口操作,并且如果它不会干扰常规行为,那么最好不要从形式派生。
或者由于表单负载很重,您可以通过从基类而不是表单派生它来节省内存和 CPU 时间。