我正在考虑制作一些功能受限的应用程序版本,我想省略简单版本中不需要的代码。作为WinForms应用程序,UI必须针对每个版本进行更改 - 不显示受限制的控件。
我试图注释部分自动生成的控件&使用条件编译语句的布局代码,但是当我通过WinForms设计器触摸任何内容时,我发现VS抛出了所有代码。
我希望能够有条件地编译一些事件处理程序& UI控件。我可以在设计器文件之外编写条件UI代码,但之后我将无法使用VS设计器来编辑我的应用程序..是否有任何建议来纠正这种情况 - 即有条件地编译UI控件&仍然让他们在设计师中展示?
谢谢!
答案 0 :(得分:1)
您不知道UI表单的外观,也许您可以创建一个所有版本共享功能的基本表单。然后使用特定功能的表单进行子类化。这样,您可以有条件地编译子表单,而不是尝试在一个表单中打开/关闭控件。但是,子表单通常会向下扩展表单,因此在整个表单中编织控件在这种情况下可能不起作用。
此外,如果您使用演示模式(如果您还没有这样做),例如MVC或MVP,您可以最小化表单中的逻辑并将其推送到演示者/控制器甚至是您可以配置的业务类在您正在编译的版本上。可以根据某些配置将这些类注入(DI)到应用程序中。
另一个选择是不编译表单控件,而是根据您运行的版本隐藏它们但编译业务类。这样,重要的“智能”代码就不在应用程序中了,而且你不会与winform设计师打架。