以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  一段代码,执行时总是调用窗体的BeforeClose事件  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=92578)

--  作者:zybaocn
--  发布时间:2016/11/7 17:01:00
--  一段代码,执行时总是调用窗体的BeforeClose事件
窗体中一个button的Click事件代码如下:
Dim dtb As new DataTableBuilder("tb")
With dtb
    .AddDef("月",Gettype(String),10)
    .AddDef("用电点1",Gettype(String),50)
    .AddDef("用电点2",Gettype(String),30)
    .AddDef("均值",Gettype(Integer))
    .AddDef("差值",Gettype(Integer))
    .Build
End With
Tables("tbfxz_tbltl").DataSource = dtb.BuildDataSource
For i As Integer = 1 To 30
    Dim dr As DataRow  =  DataTables("tbfxz_tbltl").AddNew
    dr("月") = cstr(i)
    dr("用电点1") = cstr(i)
    dr("用电点2") = cstr(i)
    dr("均值") = i
    dr("差值") = i
Next

点击button后, 直接调用窗体的BeforeClose事件,窗体关闭退出。将这段代码复制到其他正常执行的代码后,执行时也是直接调用窗体的BeforeClose事件,窗体关闭退出。


--  作者:zybaocn
--  发布时间:2016/11/7 17:03:00
--  
上面的代码可正常执行,通过在代码中添加messagebox可看到数据添加的过程和效果。
--  作者:有点蓝
--  发布时间:2016/11/7 17:17:00
--  
看不出问题,另外请贴出事件完整代码

是不是全局表事件或者窗口事件影响,全部注释掉试试。

--  作者:有点色
--  发布时间:2016/11/7 18:40:00
--  

不要重复build。

 

Dim dtb As new DataTableBuilder("tb")
With dtb
    .AddDef("月",Gettype(String),10)
    .AddDef("用电点1",Gettype(String),50)
    .AddDef("用电点2",Gettype(String),30)
    .AddDef("均值",Gettype(Integer))
    .AddDef("差值",Gettype(Integer))
    .Build
End With
Tables("tbfxz_tbltl").DataSource = DataTables("tb")