以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  CellButtonClick的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=53227)

--  作者:scott518
--  发布时间:2014/7/2 19:22:00
--  CellButtonClick的问题

同时在表事件和全局表事件中都设置了CellButtonClick的代码:结果发现了一个现象

 

如果表事件CellButtonClick的代码中用了e.cancel = true 则全局表事件中的代码就不执行了,这种情况下有什么办法让全局表事件中CellButtonClick的代码仍然执行呢?

谢谢!

 


--  作者:有点甜
--  发布时间:2014/7/2 19:27:00
--  

 表事件的CellButtonClick先于全局表事件执行。

 

 你可以用一个全局变量存储vars("cancel") = true,然后再在全局表事件决定是否执行e.Cancel = vars("cancel")

[此贴子已经被作者于2014-7-2 19:41:17编辑过]

--  作者:scott518
--  发布时间:2014/7/2 19:39:00
--  

如果那样可以的话,我直接在全局表事件中加一句 不就可以了, 但是不行啊,我在全局表事件中这样写:

 e.cancel = false 

MsgBox(1)

 

但只要表事件中用了e.cancel = true ,全局表事件根本就没动静了。我就是想不管表事件中怎么设置,但全局表事件也一定要执行就可以。


--  作者:有点甜
--  发布时间:2014/7/2 19:41:00
--  
 表事件不要写e.Cancel = True啊,要在全局表事件写,请认真看2楼。
--  作者:scott518
--  发布时间:2014/7/2 19:56:00
--  
很多表事件中都写了e.cancel = true 才能弹出其他对话框,但因表太多近百个去修改每一个表中的cellbuttonclick事件的话工作量太大了,我只是想在全局表事件cellbuttonclick中设置一个变量比如: canedit = true 而已,但现在却不能执行。甜老师,还有没有其他办法呢?在不修改表事件中的e.cancel = true的情况下。
--  作者:有点甜
--  发布时间:2014/7/2 19:58:00
--  
 不能,执行e.cancel=true以后,就不会执行全局表事件了。你必须一个个去改。
--  作者:scott518
--  发布时间:2014/7/2 20:04:00
--  
我就是想让每个表的表事件的cellbuttonclick执行时将全局变量canedit = true. 那还能否在其他哪个全局表事件中设置一下就可以实现呢?我在prepare中设置好象也没用。
--  作者:有点甜
--  发布时间:2014/7/2 20:09:00
--  

 没办法代替,要么你写在click事件,要么你写在beforeSelectChanged事件,要么你单独用一个按钮去做。

 

 但是无法确定你是点击了cellButtonClick啊


--  作者:scott518
--  发布时间:2014/7/2 21:29:00
--  
谢谢了!但我就是想在cellbuttonclick执行时判断啊,因为全局表事件startedit中的代码对cellbuttonclick不起作用,所有想在执行cellbuttonclick时设置一个全局变量把独占式编辑的的判断转移到全局datacolchanging中去,这样效率相对好些。看来这个变量的设置真的要每个都去修改表事件啊!
--  作者:有点甜
--  发布时间:2014/7/2 21:32:00
--  
 建议你这样做吧,尽量不要在表事件写e.cancel=true,这句代码要写的话,就写在全局表事件,这样你就能灵活控制了。