0

我有 4 个 WinForm 应用程序。Form1从baseForm继承,Formv2从Formv1继承,v3从v2继承,v4从v3继承。大约有 2000 个控件分布在包含选项卡的许多选项卡中。

这真的会扼杀 Visual Studio 2008,经常导致它崩溃,而且总体上表现很糟糕。

我想创建一个仅从 baseForm 继承但包含 formsv1 到 v4 的所有可视布局(所有这些)的 FormV5,(baseForm 上没有控件)。

表单与表单的区别主要在于添加了新控件,一些旧控件必须移动或隐藏,或者一些标签在这里和那里更改。

谁能建议一种编程方式来做到这一点?就像在formV4上运行时使用反射或其他东西来生成代码(转储formV4控件、布局和属性)的某种方式一样,我可以剪切并粘贴到formV5.designer.vb.file中吗?

(注意,这是一个大约有 5 年历史的企业项目,每次我们进行更改时,我们都需要将其推送给我们所有的客户(医院)。我们没有自动化测试或单元测试,所以我需要得到这个正确的 :) )

谢谢乔纳森

合并所有实际的 formlogic 虚拟成员,应该可以手动管理。

4

1 回答 1

0

如果从 Form1 到 Form2 到 Form 3 到 Form 4 的布局主要是附加的(添加新控件)并且不是很多其他操作(更改大量现有控件),我会将其分开如下:

  1. 将所有全局表单设置(如背景颜色等 - 不是子控件的布局)放在基本表单中。根据您的描述,听起来这已经在baseForm中。

  2. 将 Formv1 的所有子控件的布局放在 UserControl 中。此 UserControl 将充当先前在表单上的所有控件的容器。

  3. 创建从第一个 UserControl 继承的第二个 UserControl。根据需要添加新控件。
  4. 创建从第二个 UserControl 继承的第三个 UserControl。根据需要添加新控件。
  5. 制作从第三个 UserControl 继承的第四个 UserControl。根据需要添加新控件。
  6. 制作一个继承自 baseForm 并具有第一个 UserControl 的 Form1。
  7. 制作一个从 baseForm 继承的 Form2 并在其上具有第二个 UserControl。
  8. 制作一个继承自 baseForm 并具有第三个 UserControl 的 Form3。
  9. 制作一个继承自 baseForm 并具有第四个 UserControl 的 Form4。

这个想法的优点是您可以将基本表单上的设置更改为您想要的内容(默认字体、默认前景色等),同时通过使用 UserControls 逐步更改控件的布局。

于 2011-05-29T20:33:43.340 回答