以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [讨论] 关于触发事件的计算顺序问题。 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=3809) |
-- 作者:wcs -- 发布时间:2009/8/4 23:26:00 -- [讨论] 关于触发事件的计算顺序问题。 1、对于datacolchanged事件,在手动输入数据时,是输入一个单元格的数值就执行一次事件代码,我想是这样的。 Select
Case e.datacol.name |
-- 作者:czy -- 发布时间:2009/8/5 1:11:00 -- 就你上面的代码而言,任一单元格数据变动就会执行一次代码。 我想你应该是这个意思吧? Dim dr As DataRow = e.DataRow Select Case e.datacol.name Case "第一列","第二列","第三列" If dr.IsNull("第一列") = False And dr.IsNull("第二列") = False And dr.IsNull("第三列") = False Then 代码1 End If Case "第四列","第五列" 代码2 End Select |
-- 作者:czy -- 发布时间:2009/8/5 1:15:00 -- 请教下老六,如何利用NewValue和单元格中的原有值进行比较? |
-- 作者:狐狸爸爸 -- 发布时间:2009/8/5 1:24:00 -- 以下是引用czy在2009-8-5 1:15:00的发言:
请教下老六,如何利用NewValue和单元格中的原有值进行比较?
|
-- 作者:czy -- 发布时间:2009/8/5 1:27:00 -- 以下是引用狐狸爸爸在2009-8-5 1:24:00的发言:
|
-- 作者:狐狸爸爸 -- 发布时间:2009/8/5 1:31:00 -- 是的,如果数据是填充来的,而不是输入的,就没有要用事件了,统一计算最好。 如果填充后还是需要编辑,那么事件就省不掉,此时最好用全局变量做开关,填充的时候时候,关闭计算代码,填充结束后,重启计算代码,然后RaiseDataColChanged方法重置列即可。 |
-- 作者:czy -- 发布时间:2009/8/5 1:34:00 -- 有理。 |
-- 作者:wcs -- 发布时间:2009/8/5 8:38:00 -- 老大的意思是: |
-- 作者:狐狸爸爸 -- 发布时间:2009/8/5 8:41:00 -- 是的. 以后加一些是否触发特定事件的逻辑属性算了. |
-- 作者:yangming -- 发布时间:2009/8/5 9:01:00 -- 有理,学习了,如果以后能加特定属性最好 |