2010-07-07 38 views
2

我正在尋找使用受限功能生成我的應用程序的幾個版本,並且我想省略在簡單版本中不必要的代碼。作爲一個WinForms應用程序,UI將不得不爲每個版本進行更改 - 不顯示受限制的控件。有條件地編譯UI組件和邏輯

我試圖用條件編譯語句註釋部分自動生成的控件&佈局代碼,但是當我通過WinForms設計器觸摸任何事物時,我發現VS會拋出所有代碼。

我希望能夠有條件地編譯一些事件處理程序& UI控件。我可以在設計器文件外部編寫條件UI代碼,但之後我無法使用VS設計器來編輯我的應用程序。是否有任何建議來糾正這種情況 - 即有條件地編譯UI控件&仍然會顯示它們在設計師?

謝謝!

回答

1

不知道你的UI形式如何看起來像也許你可以創建一個所有版本共享功能的基本形式。然後用特定功能的表單子類。通過這種方式,您可以有條件地編譯子表單,而不是嘗試在一個表單中打開/關閉控件。但是,子表單通常會向下擴展表單,因此在整個表單中編織控件在這種情況下可能不起作用。

此外,如果您使用演示模式(如果您還沒有這樣做),例如MVC或MVP,您可以最小化表單中的邏輯並將其推送給演示者/控制器甚至可以配置的業務類基於您正在編譯的版本。根據某些配置,這些類可以注入(DI)到應用程序中。

另一個選項不是編譯出表單控件,而是根據您正在運行的版本來隱藏它們,但是已經編譯了業務類。通過這種方式,重要的「智力」代碼不在應用程序中,而且您不會與winform設計者爭鬥。