2010-10-21 23 views
0

我是过于简单化这里顺利,但说我有几个控制它(例如:一个文本框,一个TreeView和一个列表视图)一个WinForm。C#确保GUI尽可能

为了确保未来的流畅使用体验(例如,该列表视图有一天可能会持有大量的数据),应该在一开始做呢?

我这种事情的认识是非常有限的,但我假设双缓冲建议?我也听说过一些关于重写OnPaint方法的一些控件?

感谢 扎克

回答

2

在设计新的应用程序,你不必去想这些东西。如果您稍后遇到问题,可以应用修复程序而不会破坏您已经投入项目的工作。尽管我可以向你保证,95%的应用程序不需要关于控件的控件或绘画的特别优化,特别是不在OnPaint中。祝你好运。

+0

感谢您的意见。我只问,因为我创建的最后一个应用程序导致了很多麻烦,由于我的用户控件闪烁。另外,调整列表视图的列大小非常缓慢,所以我想确保在实际的“编码”开始之前将所有这些东西整理出来。 – 2010-10-21 07:22:28

+0

是的,像ListView这样的控件需要稍微修复,因为它们有闪烁的问题。但是在你目前的阶段,这应该不涉及你。当一次设置数百个项目时,列表视图也有问题,但也可以解决。 – testalino 2010-10-21 07:26:38

0

为了确保未来(例如,该列表视图有一天可能会持有大量数据的),应该在开始进行最流畅的体验?

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

2-您正在使用treeview,不要尝试在内存中加载整个树。按需使用加载树即只显示根节点,以及用户何时单击以展开节点才加载数据。

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

4-尝试移动业务消耗大量的时间在后台工作组件,它基于supoorts事件通知,帮助您报告您的业务进展。

5-尝试使用缓存的非急切更改的数据,即如果假设,你有一个winforms显示一个滴状的国家列表,所以只需选择一次数据并将其存储在内存中,这样,每当你需要这些数据时,都需要一个新的数据库调用。

这是非常初始步骤,但可以有很多其他的也喜欢使用WeakRefernce类的树视图。

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

相关问题