meteor0330 发表于 2014-2-13 16:59:23

【已解决】请问怎样让listview显示速度快一点呢?又怎样控制listview的每个字段宽度?

本帖最后由 meteor0330 于 2014-8-12 09:00 编辑

我从一个SQL数据库中读取数据,然后用listview列出来,发现列出的速度非常慢,一共列出500条数据,每条数据列出7个字段,发现需要用时15秒左右。

我的工作环境是:SQL服务器在内网中(就一个物理交换机连接),客户机也是i5的CPU。
我把listview放在一个Tabsheet中了。

想请问各位大师:
1、这种情况是不是因为SQL服务器传输太慢?
2、与我的listview放在一个Tabsheet中有无关系?
3、我用的OnEvent模式生成的窗体,与这个也有关系吗?
4、如果先把数据读出来放在一个数组中,然后再显示到listview中是不是要快一些?

谢谢各位!!!

追问:我用GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 50)这样来控制每个字段的宽度了,但发现一个问题:就是刚打开程序时,listview的每个字段宽度都是正常的,但一旦装入数据后,宽度会发生变化,不知是怎么回事!

meteor0330 发表于 2014-2-14 10:26:55

大师们都过节去了吗??
帮小生一把吧!!{:face (239):}

meteor0330 发表于 2014-2-14 10:55:08

listview的字段宽度问题已经解决了!呵呵!!!

南一 发表于 2014-2-14 15:59:06

自己以前也遇到过这个问题,这里也跟大家分享下吧。
listview这个控件显示数据是实时的,也就是你放入一个数据,窗体就需要刷新一遍这个控件,所以当放入大量数据时,就需要花很长时间。
首先把窗体给锁住,然后再放入数据,再解开,估计可以控制在1-2s内吧。
在UDF中还有个_GUICtrlListView_BeginUpdate/_GUICtrlListView_EndUpdate函数,也可以起到作用。
当然最牛的属一个Virtual ListView,论坛的cross door已经给出了例子,你可以看下http://www.autoitx.com/forum.php?mod=viewthread&tid=34526&extra=&ordertype=1

meteor0330 发表于 2014-2-14 16:28:59

自己以前也遇到过这个问题,这里也跟大家分享下吧。
listview这个控件显示数据是实时的,也就是你放入一个 ...
南一 发表于 2014-2-14 15:59 http://www.autoitx.com/images/common/back.gif


    真是灰常地感谢!!!!!

kk_lee69 发表于 2014-3-12 13:15:14

方法有幾個
1. 使用 Virtual ListView 已經有人說過了http://www.autoitx.com/viewthrea ... ra=&ordertype=1
2. 使用我之前發表過的一篇文章概念是 不要一筆一筆放資料而是用陣列 一起放進去 速度快點但是絕對比不上Virtual ListView
页: [1]
查看完整版本: 【已解决】请问怎样让listview显示速度快一点呢?又怎样控制listview的每个字段宽度?