以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]同一段程序在同一目录树下不同事件为什么运行速度完全不一样呢? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=15295) |
||||
-- 作者:新福星 -- 发布时间:2011/12/20 7:35:00 -- [求助]同一段程序在同一目录树下不同事件为什么运行速度完全不一样呢? 在一个窗口中有一目录树控件TreeView1。在AFTERLOAD事件中有一段程序如下: Dim tv As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim tt As DataRow 窗口打开运行正常; 把这段程序放到该控件的NodeMouseDoubleClick事件中,没有任何改动,这时运行的结果就非常的慢。什么原因呢? |
||||
-- 作者:狐狸爸爸 -- 发布时间:2011/12/20 9:19:00 -- 原因很清楚啊,上面的代码是从后台加载数据生成表,再根据这个表生成目录树,这是一个相当耗时的工作,怎么能设置在NodeMouseDoubleClick事件中呢? 而且有必要每次双击鼠标,就重新生成整个目录树吗? |
||||
-- 作者:新福星 -- 发布时间:2011/12/20 9:43:00 -- 在打开这个窗口时,建立这个目录树的速度非常快!NodeMouseDoubleClick这个事件中的代码没写全!在目录树上进行模糊搜索之后,按搜索结果重建目录树;若想恢复完整目录树内容,在其上有一项是“加载全部记录”,点到这一项就要做上述的那段程序了!我的问题是 在打开窗口时这个目录树建立的非常快,几乎打开同时就建成了;同一段程序在NodeMouseDoubleClick这个事件中,我要重新刷新目树树,但是速度相当的慢。这是为什么呢? |
||||
-- 作者:狐狸爸爸 -- 发布时间:2011/12/20 10:07:00 -- 另外加个刷新按钮:
http://www.foxtable.com/help/topics/2350.htm
|
||||
-- 作者:新福星 -- 发布时间:2011/12/20 10:30:00 -- 加上刷新按钮了!效果还是那个样子!打开窗口瞬间目录树就建成了!按了这个刷新按钮,窗口就不动了,要等上两三分钟;瞬间和两三分钟差距太大了。刷新按钮中的内容就是打开窗口时的程序,直接COPY过来的! 此主题相关图片如下:建立目录树时间差异.gif 这是一个效果演示,时间差异太大了! |
||||
-- 作者:狐狸爸爸 -- 发布时间:2011/12/20 10:33:00 -- 做个简单的例子传上来的,将窗口和代码设计好。 |
||||
-- 作者:新福星 -- 发布时间:2011/12/20 11:02:00 --
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2011/12/20 11:27:00 -- Dim tv As WinForm.TreeView = e.Form.Controls("TreeView1") cmd.C Dim ia As Integer=0 Dim tt As DataRow nd = tv.Nodes.Insert("加载全部记录","加载全部记录",0) |
||||
-- 作者:新福星 -- 发布时间:2011/12/20 14:52:00 -- 谢谢狐爸!速度正常了!在这些语句中用了一些新语句怎么在教材中没有找到呢? |