2011-05-27 47 views
0

我有4個WinForm應用程序。 Form1從baseForm繼承,Formv2從Formv1繼承,v3從v2繼承,v4從v3繼承。有大約2000個控件分佈在包含選項卡的多個選項卡中。如何合併(Winform)可視化繼承樹

這真的是殺了Visual Studio 2008,經常導致它崩潰,並且一般來說性能很差。

我想創建一個FormV5,它只從baseForm繼承,但包含formsv1到v4(所有這些)的所有可視佈局,(在baseForm上沒有控件)。

從表單到表單的差異主要是添加新的控件,一些舊的控件不得不被移動或隱藏,或者一些標籤在這裏和那裏發生變化。

任何人都可以提出一個編程方式來做到這一點?像在運行時使用反射或某些方式在formV4上生成代碼(轉儲formV4控件,佈局和屬性),我可以剪切並粘貼到formV5.designer.vb.file? (注意,這是一個大約5年的企業項目,每次我們做出改變,我們都需要將它推送給所有客戶(醫院)。我們沒有自動化測試或單元測試,所以我還挺得讓這個吧:))

感謝喬納森

合併所有實際formlogic虛擬成員,應手動管理。

+0

Dice.com是解決此問題的一種方法。 – 2011-05-27 13:01:45

回答

0

如果從Form1到Form2到Form 3到Form 4的佈局大多是添加的(添加新的控件)並且不是很多其他操作(改變了大量現有的控件),我將它分開如下:

  1. 將所有全局表單設置(如backcolor等 - 不是子控件的佈局)放在基本形式中。從您的描述中可以看出這已經在baseForm

  2. 將Formv1的所有子控件的佈局放在UserControl中。此UserControl將充當之前在表單上的所有控件的容器。

  3. 使第二個UserControl從第一個UserControl繼承。添加新的控件作爲必要條件。
  4. 創建從第二個UserControl繼承的第三個UserControl。添加新的控件作爲必要條件。
  5. 創建從第三個UserControl繼承的第四個UserControl。添加新的控件作爲必要條件。
  6. 製作一個Form1,它從baseForm繼承並且擁有第一個UserControl。
  7. 製作一個從baseForm繼承的Form2,並且擁有第二個UserControl。
  8. 製作一個Form3,它繼承自baseForm並擁有第三個UserControl。
  9. 製作一個Form4,它繼承自baseForm並且擁有第四個UserControl。

這個想法的好處在於,您可以將基本形式上的設置更改爲心臟的內容(默認字體,默認前景色等),同時通過使用逐步更改控件的佈局的UserControls。

+0

我很欣賞這個答案,但它表明也許我的問題不清楚。有很多方法可以改變現有的表格。我簡單地想要一種方法將所有現有的佈局合併到一個新的formv5中。基本上,我希望我可以將formv4複製到僅從baseForm繼承的新formv5。 – jonchicoine 2011-05-30 10:34:06