2017-02-06 25 views
0

我們有一個非常緊湊的winform,放置了180多個控件。
大多數這些控件都是動態放置的,有些是基於某些首選項顯示/隱藏的。
作爲優化代碼的一部分,我決定將InitializeComponent分成三部分,並且在基於參數的表單的構造函數中,我將選擇正確的InitializeComponent,它將只對那個工作流程啓動。Winform的Multiple InitializeComponent

這是正確的做法,有沒有這樣做

+1

不,這不是一個正確的方法。根本沒有意義來「優化」InitializeComponent(),你沒有自己寫這個方法。充其量,您再也無法在設計師中打開表單了,最糟糕的是,您所做的所有更改都會消失無蹤。更合乎邏輯的方法是創建三個UserControls。表單類現在變得非常小,它只需要創建你想要顯示的UC。如果這些UCs有共同的東西,可能是這種情況,那麼從另一個派生一個,所以你不會重複代碼。 –

+0

謝謝您的建議 我已經厭倦了它與示例窗體,我可以打開設計器的形式,另一點隨着UC我需要重新排列控件按照表單設計,如果這樣將不可能作爲所有的控件都被動態地放置 – AnoopJamesLeo

回答

0

任何其他方式似乎是正確的對我來說,假設你已經放棄了設計師和自己寫的InitializeComponent()方法。否則,設計人員可能會以某種方式覆蓋您的代碼。

+0

任何其他更好的實現你會建議 – AnoopJamesLeo

+0

@ HansPassant的解決方案也不錯。我有一段時間沒有做winform。 –