Foxtable(狐表)用户栏目专家坐堂 → 这句代码效率好低啊.


  共有4044人关注过本帖树形打印复制链接

主题:这句代码效率好低啊.

帅哥哟,离线,有人找我吗?
永不言弃
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:76 积分:598 威望:0 精华:0 注册:2013/8/7 7:35:00
这句代码效率好低啊.  发帖心情 Post By:2014/3/29 1:09:00 [只看该作者]

 

Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")

lvw.Images.LargeSize = New Size(150,110)

lvw.Rows.Clear()

lvw.Images.Clear()

lvw.View = ViewMode.LargeIcon

lvw.AllowDrag = True

lvw.AllowDrop = True

For Each dr As DataRow In DataTables("花型基础资料").Select("花号 Like '*" & e.Form.Controls("TextBox1").Text & "'")

    Dim Key As String = dr("花型图片")

    Dim vr As  WinForm.ListViewRow = lvw.Rows.Add()

    vr.Text = dr("花号")

    vr.Name = dr("花号")

    vr.ImageKey = Key

    lvw.Images.AddLargeImage(Key, Key)

Next

 

 

老师,能有改进的办法吗?执行完整个过程,用时差不多两分钟.我都以为死机了,郁闷死.

[此贴子已经被作者于2014-3-29 1:10:01编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/3/29 7:54:00 [只看该作者]

Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")
lvw.Images.LargeSize = New Size(150,110)
lvw.Rows.Clear()
lvw.Images.Clear()
lvw.View = ViewMode.LargeIcon
lvw.AllowDrag = True
lvw.AllowDrop = True
Dim drlst As List(Of DataRow) = DataTables("花型基础资料").Select("花号 Like '*" & e.Form.Controls("TextBox1").Text & "'")
For Each dr As DataRow In drlst
    lvw.Rows.Add()
Next
For i As Integer  = 0 To drlst.Count - 1
    lvw.Rows(i).Text = drlst(i)("花号")
    lvw.Rows(i).Name = drlst(i) ("花号")
    lvw.Rows(i).ImageKey = drlst(i)("花型图片")
    lvw.Images.AddLargeImage(drlst(i)("花型图片"), drlst(i)("花型图片"))
Next

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/3/29 9:06:00 [只看该作者]

 建议楼主看看这章 stopredraw

 

 http://www.foxtable.com/help/topics/2845.htm

[此贴子已经被作者于2014-3-29 9:06:44编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/3/29 9:24:00 [只看该作者]

以下是引用有点甜在2014-3-29 9:06:00的发言:

 建议楼主看看这章 stopredraw

 

 http://www.foxtable.com/help/topics/2845.htm

[此贴子已经被作者于2014-3-29 9:06:44编辑过]

有道理。


 回到顶部
帅哥哟,离线,有人找我吗?
菲舍尔
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:509 积分:3547 威望:0 精华:3 注册:2012/11/13 15:49:00
  发帖心情 Post By:2014/3/29 10:23:00 [只看该作者]

甜说的对,加stopredraw 和不加,时间相差1000倍

 回到顶部
帅哥哟,离线,有人找我吗?
永不言弃
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:76 积分:598 威望:0 精华:0 注册:2013/8/7 7:35:00
  发帖心情 Post By:2014/3/29 10:31:00 [只看该作者]

加了暂停和恢复绘制,还是不管用.

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/3/29 10:55:00 [只看该作者]

以下是引用永不言弃在2014-3-29 10:31:00的发言:
加了暂停和恢复绘制,还是不管用.

 

每次的数据量都很大?你试试少一些数据,看看执行效率。


 回到顶部
帅哥哟,离线,有人找我吗?
永不言弃
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:76 积分:598 威望:0 精华:0 注册:2013/8/7 7:35:00
  发帖心情 Post By:2014/3/29 11:08:00 [只看该作者]

原来只有100行左右的时候是好的,现在加到了一万行,就跑不动了.我的电脑也是老的笔记本,这也有关系吧.

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/3/29 11:17:00 [只看该作者]

 每次要显示的数据量如果较多的话,要用虚拟模式或分页显示的。

 

http://www.foxtable.com/help/topics/2780.htm

 

http://www.foxtable.com/help/topics/2781.htm

 

http://www.foxtable.com/help/topics/2824.htm

 

 


 回到顶部