以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]MainTableChanged和CurrentTableChanged事件代码会执行两次?-确认是bug (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=142670) |
-- 作者:shenyl0211 -- 发布时间:2019/11/3 12:39:00 -- [求助]MainTableChanged和CurrentTableChanged事件代码会执行两次?-确认是bug 一、测试代码 MainTableChanged中代码: Select Case MainTable.Name Case "合同管理" MessageBox.Show(1) End Select CurrentTableChanged中代码: Select Case CurrentTable.Name Case "合同管理" MessageBox.Show(2) End Select 二、系统代码区别 在其他代码都不变的前提下: A测试方案:在BeforeLoadOuterTable中加载所有65张表,启动完成之后进行上述表格切换,上述测试代码只执行一次; B测试方案:在BeforeLoadOuterTable中加载3张表、在AfterOpenProject中加载剩余的62张表,启动完成之后进行上述表格切换,上述测试代码会执行二次。 请问高手:同样是加载了全部表,只是加载方式不一样,为什么结果就不一样呢?特别是其他代码都不变。 [此贴子已经被作者于2019/12/27 20:29:01编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/11/3 21:00:00 -- 我测试没有问题。上传实例说明 |
-- 作者:shenyl0211 -- 发布时间:2019/11/3 23:36:00 -- 找到原因了,是动态加载表造成的。 谢谢蓝版。
|
-- 作者:shenyl0211 -- 发布时间:2019/11/5 10:44:00 -- 蓝版:经过测试,我更迷糊了。最简单的测试情况反映在一楼。请指教。 |
-- 作者:有点蓝 -- 发布时间:2019/11/5 11:13:00 -- 我测试还是没有问题。只弹出了2次提示框 您说的执行二次是指这个2个事件分别各执行了1次,总共弹出了2次提示框?
还是说每个事件都执行了2次,总共弹出了4次提示框? |
-- 作者:shenyl0211 -- 发布时间:2019/11/5 11:28:00 -- 蓝版:是每个事件都执行了2次。 先放下吧,反正在速度上没有什么影响,用户也感觉不到差别。
|
-- 作者:有点蓝 -- 发布时间:2019/11/5 11:46:00 -- 有问题就解决,不然可能会引发其它的问题。 做个实例发过来测试
|
-- 作者:shenyl0211 -- 发布时间:2019/11/6 14:27:00 -- MainTableChanged事件代码:MessageBox.Show(MainTable.Name) 现象: 1.只要初始加载所有表结构,就不会发生2次切换主表。 2.即使初始没有加载所有表结构,只要以后加载的表不是关联表,也不会发生2次切换主表。 本例初始加载非关联表【表A】、关联表【表B】和【表C】,不会发生2次切换主表,相当于现象1。 如果点击功能区菜单按钮【加载非关联表F】,也不会发生2次切换主表,也相当于现象1。 3.如果初始没有加载所有表结构,只要以后加载的表是关联表,已经加载的所有表(不管是否关联表),都会发生2次切换主表。 如果在现象2基础上点击按钮【加载关联表D和E】,则之后所有主表的切换都会发生2次。 总结: 问题出在加载关联表上。(我的版本日期是2019-10-26) [此贴子已经被作者于2019/11/6 14:28:17编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/11/6 14:43:00 -- 是有问题,已反馈 |
-- 作者:81538475 -- 发布时间:2020/3/20 16:49:00 -- 请问这个已经解决了吗 |