Foxtable(狐表)用户栏目专家坐堂 → 窗口内表格动态添加列很慢,求问原因


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

主题:窗口内表格动态添加列很慢,求问原因

帅哥,在线噢!
狐狸爸爸
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47511 积分:251479 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/5/17 10:05:00 [显示全部帖子]

我测试,如果在窗口的Afterload事件,只需0.01秒:

Dim  dt As Date = Date.now
DataTables("窗口1_Table1").DataCols.add("列名", Gettype(String))
MessageBox.show((Date.now -dt).Totalseconds)

 

如果做个按钮,在打开窗口后单击按钮增加列,也不过0.02秒。

 

所以也许问题在其他方面,用上面的方法,分析时间到底耗费在什么地方,搞不定就做个例子发上来测试。


 回到顶部
帅哥,在线噢!
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47511 积分:251479 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/5/17 10:33:00 [显示全部帖子]

如果有事件,可能是因为填充数据的过程中,频繁触发事件导致速度慢,你可以填充过程中暂停事件执行:

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

 

这种问题,你要先分析出真正导致速度变慢的代码,才好对症下药,不要凭直觉。
提问的时候,最好贴出完整的代码。

 

另外任何表都可以使用事件,包括零时生成的表:

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

 

 

 

[此贴子已经被作者于2016/5/17 10:36:44编辑过]

 回到顶部
帅哥,在线噢!
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47511 积分:251479 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/5/17 10:36:00 [显示全部帖子]

如果你要动态增加好多列,0.48秒时正常的时间,这是设计思路问题,不是性能问题。

 

增加列之前可以停止绘制表,会稍微快一些。

DataTables(tbname).StopRedraw

....

DataTables(tbname).ResumeRedraw

 


 回到顶部