none
C#快速添加数据到listview控件中 RRS feed

  • 问题

  • C#怎么快速读取一个文件夹下的所有文件,,然后快速的把文件名和文件路径添加到listview控件中。但是如果文件夹中文件个数很多,比如1000个或者更多的文件的时候,添加数据到listview中的时候会很慢了。请问有没有什么好的方法能够改变添加数据的速度呢?谢谢。
    2011年5月19日 2:12

答案

全部回复

  • dear

    參考下篇對你有無幫助

    http://www.dotblogs.com.tw/yc421206/archive/2011/03/12/21808.aspx


    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
    2011年5月19日 2:31
  • 你说的慢,如果是指在listview中显示慢的话,每次向listview中添加一条记录后,执行 Application.DoEvents();方法


    http://blog.csdn.net/zx13525079024
    2011年5月20日 1:46
  • 我说的是添加数据的时间比较久。。。谢谢。
    2011年5月20日 2:17
  • 没有必要一次过添加那么多数据,人的眼睛根本看不过来,显示器也无法在一个屏幕内显示。。

    通常的做法是先填着一小部分,让用户看看先。其余部分开一条后台线程慢慢填。

     

    这样填充的时间会回落到一个可接受的值。


    学习学习....
    2011年5月20日 3:16
  • 可选方案:

    1 先准备好数据,再添加;而不要边准备边添加。尤其是当获取数据需要时间开销的时候更明显。

    2 使用后台线程,分段添加。

    3 添加时使用BeginUpdate和EndUpdate减少刷新。(不清楚ListView是否有此方法)


    Eternal Snow
    2011年5月20日 6:02
  • 如果仅仅为了显示文件夹中的子项目,直接用 ExplorerView 控件就可以了。这个东西类似于资源管理器的右边的那个 ListView,它使用了 Virtual ListView 技术,加载再多的文件也只需要一秒左右。

    ExplorerView 可以从 Windows API Code Pack 中获取,请参考 Visual Studio Gallery 网站,或 Visual Studio Extension Manager 去下载 Windows API Code Pack。


    Mark Zhou
    2011年5月20日 7:14
  • 使用virtualmode解决。
    • 已标记为答案 pucx 2011年5月23日 7:42
    2011年5月23日 7:42