Foxtable(狐表)用户栏目专家坐堂 → 发现一个代码应用速度问题


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

主题:发现一个代码应用速度问题

帅哥哟,离线,有人找我吗?
e-png
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1695 积分:10725 威望:0 精华:0 注册:2009/10/25 16:45:00
发现一个代码应用速度问题  发帖心情 Post By:2013/3/22 18:18:00 [只看该作者]

同样的代码,在命令窗口或窗口事件中执行的时候特慢,但是在窗口afterload中却飞快,这是为什么呢。

 

比如,http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=30118 中,目录树有日期作为节点,但有0:00:00 。 要清楚这个0···,下面代码放在afterload中执行飞快, 但在命令窗口其他窗口事件按钮中都非常慢!

Dim tr As WinForm.TreeView = Forms("窗口1").Controls("TreeView1")
Dim nd As WinForm.TreeNode
For Each ndd As winform.treenode In tr.allnodes
    If ndd.text.contains("0:00:00")
        ndd.text = ndd.name.replace("0:00:00","")
    End If
Next

什么道理呢? 狐爸: 能改进吗 ?


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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12993 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2013/3/22 18:37:00 [只看该作者]

Dim tr As WinForm.TreeView = Forms("窗口1").Controls("TreeView1")
Dim nd As WinForm.TreeNode

tr.StopRedraw
For Each ndd As winform.treenode In tr.allnodes
    If ndd.text.contains("0:00:00")
        ndd.text = ndd.name.replace("0:00:00","")
    End If
Next
tr.ResumeRedraw

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


加好友 发短信
等级:七尾狐 帖子:1695 积分:10725 威望:0 精华:0 注册:2009/10/25 16:45:00
  发帖心情 Post By:2013/3/22 18:53:00 [只看该作者]

呵呵,确实如此哈, 谢谢啊。 

 

但还是不理解在afterload中并没有加

 

tr.StopRedraw   

tr.ResumeRedraw
 
也一样运行飞快呢。。。

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/22 22:37:00 [只看该作者]

这是因为这个时候窗口还没有显示,无需绘制。

 回到顶部