以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]关于事件触发执行的疑问?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=151579)

--  作者:晨曦396
--  发布时间:2020/6/28 16:30:00
--  [求助]关于事件触发执行的疑问?
 当一个按钮执行触发一个表的DataColChanging事件的时候
E1xdzt 为全局变量
按钮的代码为:
Dim tbl As Table = Tables("表a")
If tbl.Current.IsNull("usercode") = False Then
    E1xdzt = "TRUE"
        tbl.Current(\'usercode\') = "001"
    E1xdzt = ""
End If

DataColChanging事件的代码
If E1xdzt <> "TRUE" Then \'不为true则清空除usercode的列
  For Each cl As DataCol In e.DataTable.DataCols
    Select cl.name
     Case "usercode"
     Case Else
       e.DataRow(cl.Name) = Nothing
     End Select
  Next
End If

1 问题为 当按钮运行到tbl.Current(\'usercode\') = "001" 这一句时, userode列触发DataColChanging,按钮剩余的代码和事件里的代码是同时运行的吗,还是需要等到事件的代码执行完成后再继续执行按钮剩余的代码 ,假如同时执行,是不是有可能按钮E1xdzt = "" 执行后,事件的代码才判断E1xdzt的值(此处希望不要触发事件,所以将
E1xdzt 设置为true),相当于事件判断时E1xdzt可能出现两种结果
--  作者:有点蓝
--  发布时间:2020/6/28 16:43:00
--  
需要等到事件的代码执行完成后再继续执行按钮剩余的代码