以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- Load 加载 和 CurrentChanged 出现的问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=50223) |
||||
-- 作者:shixia -- 发布时间:2014/5/2 8:44:00 -- Load 加载 和 CurrentChanged 出现的问题 打开主系统窗口,点击债权债务,选择第一或第二行,下方出现CurrentChanged 事件执行后出现的窗口,点击重新生成按钮,按钮里有Load 代码,一执行程序就自动退出。这是升级最新版后出现的问题。在以前版本中没有出现这个问题。
|
||||
-- 作者:lsy -- 发布时间:2014/5/2 9:50:00 -- 差不多就是这个原因了: Current事件中,几个条件:CK、RK、Else,自动轮番触发,没完没了,死循环了。 如果代码放在Click事件中,就没问题。 |
||||
-- 作者:shixia -- 发布时间:2014/5/2 10:51:00 -- 1、去掉 Load 代码,执行重新生成按钮代码,一切正常,Current 事件照常在执行,也没有出现死循环 2、在重新生成按钮中 一开始就把 变量 pause = True,Current 事件中代码并不执行 [此贴子已经被作者于2014-5-2 10:59:37编辑过]
|
||||
-- 作者:lsy -- 发布时间:2014/5/2 11:08:00 -- 因为LOAD,Current值变了,触发事件,又LOAD,又触发事件: 结果:死循环。 |
||||
-- 作者:lsy -- 发布时间:2014/5/2 11:16:00 -- CurrentChanged事件,非常灵敏,很多操作都可以导致当前行改变。 如果不预先考虑周全,这个事件,造成的漏洞,很难查找。 |
||||
-- 作者:shixia -- 发布时间:2014/5/2 11:30:00 -- 把变量 pause = True,停止执行CurrentChanged事件,再执行按钮后续Load代码,为什么还不行 |
||||
-- 作者:lsy -- 发布时间:2014/5/2 11:38:00 -- 停止执行,就不会出错。 |
||||
-- 作者:shixia -- 发布时间:2014/5/2 13:25:00 -- 我设置了 Pause 变量,在CurrentChanged事件中,设置代码 为 if pause = True then Return end if 在按钮代码中 一开始就设 pause = True,目的就是停止执行Currentchanged事件,但是照常出现问题
|
||||
-- 作者:lsy -- 发布时间:2014/5/2 13:43:00 -- 这个简单,直接在第一行:Return |
||||
-- 作者:shixia -- 发布时间:2014/5/2 15:14:00 -- 那不等于 把CurrentChanged 事件中代码全删除? |