找回密码
 加入
搜索
查看: 5072|回复: 5

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

[复制链接]
发表于 2014-2-13 16:59:23 | 显示全部楼层 |阅读模式
本帖最后由 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的每个字段宽度都是正常的,但一旦装入数据后,宽度会发生变化,不知是怎么回事!
 楼主| 发表于 2014-2-14 10:26:55 | 显示全部楼层
大师们都过节去了吗??
帮小生一把吧!!
 楼主| 发表于 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 ... ra=&ordertype=1
 楼主| 发表于 2014-2-14 16:28:59 | 显示全部楼层
自己以前也遇到过这个问题,这里也跟大家分享下吧。
listview这个控件显示数据是实时的,也就是你放入一个 ...
南一 发表于 2014-2-14 15:59



    真是灰常地感谢!!!!!
发表于 2014-3-12 13:15:14 | 显示全部楼层
方法有幾個
1. 使用 Virtual ListView 已經有人說過了  http://www.autoitx.com/viewthrea ... ra=&ordertype=1
2. 使用  我之前發表過的一篇文章  概念是 不要一筆一筆放資料  而是用陣列 一起放進去 速度快點  但是絕對比不上  Virtual ListView
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-18 12:42 , Processed in 0.088992 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表