2

使用 WinForms 时,组织表单控件代码的理想方式是什么?这听起来模棱两可,让我扩展以增加清晰度。

我的应用程序使用了许多表单控件。ListView 就是其中之一。在应用程序启动之前,我必须设置 ListView 的标题、列、抓取数据、填充 ListView 等。不仅有在删除或添加项目时重绘列表视图的代码,还有各种ListView 上的事件代码。

这是一个例子。我的应用程序使用了许多控件,这些控件具有很多功能,并且需要在运行时加载或重绘之前进行设置。

将所有这些都塞入主窗体只会变得复杂和混乱。

保持物品清洁、整洁和可维护的理想选择是什么?

4

4 回答 4

2

如果您正在寻找元素排序而不是设计模式,那么我建议您使用Style Cop。当你习惯它之后,它会让你更容易找到你想要的代码。(Style Cop 有许多其他关于评论等的规则,这也使代码组织更容易)。

根据 style cop 元素排序规则http://www.stylecop.com/docs/SA1201.html元素应按以下顺序放置:

  • 外部别名指令
  • 使用指令
  • 命名空间
  • 代表们
  • 枚举
  • 接口
  • 结构
  • 课程

在类、结构或接口中,元素必须按以下顺序定位:

  • 字段
  • 构造函数
  • 终结器(析构函数)
  • 代表们
  • 活动
  • 枚举
  • 接口
  • 特性
  • 索引器
  • 方法
  • 结构
  • 课程

编辑 自从OP的最后一次编辑以来,我发现这并不是所说的。我建议将所有与用户界面不直接相关的代码移动到另一个类或多个类中,并且只将直接引用 UI 控件的代码保留在 Form 类中。

于 2013-08-22T12:07:43.580 回答
1

您可以使用设计模式,例如:

模型-视图-演示者(MVP);

模型-视图-视图模型(MVVM);

模型-视图-控制器 (MVC)。

它们非常适合将逻辑层与用户界面层分开。您可以在此处查看一些示例。这个适用于 Model-View-ViewModel (MVVM),适用于我。

设计模式的好处在于它们使您的代码可测试。

于 2013-08-22T11:48:23.997 回答
0

constructor为表单控件创建一个,并处理来自构造函数的功能。或者在form_load包含控件的表单事件中处理功能

于 2013-08-22T12:06:30.857 回答
0

您可以使用许多模式来模块化您的代码。使用数据填充 GUI 的一种流行方法是使用 MVC 或 MVP 范例。如果您需要在不阻塞 UI 线程的情况下获取数据,则可以delegates在 Presenter/Controller 中使用以从底层数据源检索必要的数据。

于 2013-08-22T11:49:43.730 回答