用多个“屏幕”构建Winform应用程序的正确方法是什么


11

构建具有多个“屏幕”的Winform应用程序的正确方法是什么?例如,我正在尝试编写一个小的备份程序(主要用于咯咯笑),并且我一直在将控件和容器转储到表单上。

我正在使用面板和组框来分隔不同的屏幕(例如:我正在使用一个面板来保存“设置”窗口的所有控件,而另一个面板来显示已设置的所有当前备份)。好吧,我的form.cs文件膨胀成大量的代码,我感觉自己做错了什么。我几乎找不到文件中的任何内容,现在可以重新开始了。这个项目只是为了扩展我对C#和.NET的了解,因此开始一个新项目并不是一件大事。

Answers:


10

有很多方法可以控制UI复杂性。

  • 如果您有很多表单,则可以选择一种管理过渡的设计模式:例如Application Controller,或者更接近金属:State
  • 您可以将控件组组合成单个控件。在winforms中,您可以使用用户控件
  • 如果复杂性来自表单中的大量代码,而不是表单中的大量控件,那么您可以使用标准的面向对象的编程技术,将代码更好地封装到对象中。了解SOLID原则是一个很好的起点。
  • 否则,存在使用用户界面的模式。除其他事项外(关注点分离突出),它们有助于组织代码。一些常见的是MVCMVPMVVM

根据您的描述,我将使用自定义用户控件替换您现在使用的面板。然后,只需将这些用户控件放在面板所在的表单上即可。


4

Winforms中,每个表单都应处理自己的工作。您应该有一个用于设置的表格,另一个用于显示当前备份的表格,等等。

如果您要坚持使用单一形式的多个组,则可以创建用户控件(如SnOrfus所说)来分隔代码。如果您仍然在某些类上获得大量代码,则可以使用Partial类将不同的代码分离到不同的文件中。

局部类似乎是一个不错的选择,但我只建议您这样做,因为您正在构建一个业余项目。对于更大或更复杂的项目,您应该使用模式将正确的工作委派给正确的对象,还可以切换到WPF之类的新技术,在其中更容易使用MVVM这样的模式。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.