组织WinForm控件代码

时间:2013-08-22 11:45:06

标签: c# .net

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

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

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

把所有这些都填入主表格会变得复杂而混乱。

什么是保持干净,整洁和可维护的理想选择?

4 个答案:

答案 0 :(得分:2)

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

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

  • 外部别名指令
  • 使用指令
  • 命名空间
  • 代表
  • 枚举
  • 接口
  • 的Structs

在类,结构或接口中,元素必须按以下顺序放置:

  • 字段
  • 构造
  • 终结者(破坏者)
  • 代表
  • 活动
  • 枚举
  • 接口
  • 属性
  • 索引器
  • 方法
  • 的Structs

修改 自OP的最后一次编辑以来,我发现这不是真正他正在谈论的内容。 我建议将与用户界面没有直接关系的所有代码移动到另一个类或多个类中,并且只保留直接引用Form类中UI控件的代码。

答案 1 :(得分:1)

您可以使用以下设计模式:

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

Model-View-ViewModel(MVVM);

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

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

为表单控件创建constructor,并从构造函数处理功能。或者处理包含控件

的表单的form_load事件中的功能