C#确保GUI尽可能顺利

时间:2010-10-21 07:13:22

标签: c# user-interface listview interface

我在这里过于简单化了,但是说我有一个带有几个控件的WinForm(例如:文本框,树视图和列表视图)。

为确保未来最顺畅的体验(例如,列表视图可能有一天会包含大量数据),应该在开始时做些什么?

我对这种事情的了解非常有限,但我建议假设双缓冲?我还听说过覆盖一些控件的OnPaint方法吗?

由于 扎克

2 个答案:

答案 0 :(得分:3)

在设计新应用程序时,您不必考虑这些内容。如果您以后遇到问题,可以在不破坏已放入项目的工作的情况下应用修复。虽然我可以向您保证,95%的应用程序不需要对控件或控件绘制进行任何特殊优化,尤其是在OnPaint中。祝你好运。

答案 1 :(得分:0)

  

为确保未来最顺畅的体验(例如,,列表视图可能有一天会包含大量数据),应该在开始时做些什么?

1-如果它要存储大量数据,请尝试为数据实现分页。

2-您正在使用treeview,请勿尝试在内存中加载整棵树。使用按需加载树,即仅显示根节点,当用户单击以展开节点时,仅加载数据。

3-如果您的应用程序提供了在树中搜索节点的功能,而不是试图记住树是一种特殊的图形,那么使用适当的图形算法(如(DFS,BFS))来搜索节点。

4-尝试移动在后台工作组件中消耗大量时间的操作,它会提供基于事件的通知,帮助您报告操作进度。

5-尝试使用非frequetly更改数据的缓存,如果设想menas,你有一个winforms显示国家的下拉列表,所以只需选择一次数据并将其存储在内存中,这样你就不会每次需要这些数据时都需要新的数据库调用。

这是非常初始的步骤,但也可能有许多其他步骤,例如在树视图中使用WeakRefernce类。

尝试在MSDN上阅读性能优化。