2015-03-19 78 views
0

我正在使用第三方Windows窗體庫,它具有一些表單主題選項,如使窗體窗體看起來像Office窗體(類Office2007Form)或像Metro窗體(類MetroForm)。該庫由SyncFusion製作。C#做一些類似Windows窗體的動態繼承?

https://www.syncfusion.com/products/windows-forms/office2007form

https://www.syncfusion.com/products/windows-forms/metroform

不幸的是,沒有一個單一的窗體類在那裏我可以通過屬性(類似:SyncFusionForm.Theme =新城)設定的主題。相反,類是獨立的,如果我想支持這兩個主題,我必須爲每個主題創建具有相同控件和幾乎相同代碼的重複表單。

有沒有什麼辦法可以動態地設置這樣的東西,也許通過模擬多接口的接口?我沒有表單類的來源,所以我的選項不太靈活。要創建一個SyncFusion主題表單,我目前只是創建一個Windows窗體並將基類從「窗體」更改爲「Office2007Form」或「MetroForm」,然後我爲顏色等設置了一些屬性...

請讓我知道,如果任何人有一些想法,我可以做到這一點,而無需複製我的控制和代碼。提前致謝!

回答

1

我的第一本能是在UserControl上擁有所有東西。然後根據需要將用戶控件添加到Office2007Form或MetroForm實例。

我遵循設計模式的原則'偏好構成超過繼承'

+0

非常感謝你!這樣一個簡單的解決方案給我造成了很多挫折。 – tjsmith 2015-03-19 18:53:43