问题描述
|
我有4个WinForm应用程序。 Form1从baseForm继承,Formv2从Formv1继承,v3从v2继承,v4从v3继承。大约有2000个控件分布在包含选项卡的许多选项卡中。
这确实杀死了Visual Studio 2008,经常导致它崩溃,并且总体上来说还很糟糕。
我想创建一个FormV5,它仅继承自baseForm,但包含formv1到v4的所有可视布局(全部),(baseForm上没有控件)。
表单之间的差异主要是添加新的控件,一些旧的控件必须移动或隐藏,或者在此处或此处更改了一些标签。
谁能建议以编程方式做到这一点?就像在formV4上使用反射或运行时某种方式生成代码(转储formV4控件,布局和属性)的某种方式一样,我可以剪切并粘贴到formV5.designer.vb.file中吗?
(请注意,这是一个大约有5年历史的企业项目,每次进行更改时,我们都需要将其推销给所有客户(医院)。我们没有自动化测试或单元测试,因此我一定要得到这个对 :) )
谢谢乔纳森
合并所有实际的Formlogic虚拟成员,应该可以手动管理。
解决方法
如果从Form1到Form2到Form 3到Form 4的布局大部分是累加的(添加新控件),而不是很多其他操作(更改很多现有控件),则我将其分离如下:
将所有全局窗体设置(如背景色等-而不是子控件的布局)放在基本窗体中。根据您的描述,听起来这已经在baseForm中。
将所有Formv1的子控件的布局放在UserControl中。此UserControl将充当以前在窗体上的所有控件的容器。
制作第二个从第一个UserControl继承的UserControl。根据需要添加新控件。
制作从第二个UserControl继承的第三个UserControl。根据需要添加新控件。
制作从第三个UserControl继承的第四个UserControl。根据需要添加新控件。
制作一个从baseForm继承并具有第一个UserControl的Form1。
制作一个从baseForm继承并具有第二个UserControl的Form2。
制作一个从baseForm继承并具有第三个UserControl的Form3。
创建一个继承自baseForm并具有第四个UserControl的Form4。
这种想法的优点是,您可以将基本表单上的设置更改为您的心脏内容(默认字体,默认前景色等),同时通过使用UserControls逐步更改控件的布局。