以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何在某窗体禁用全局表事件  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=121600)

--  作者:huangxueyao
--  发布时间:2018/7/10 10:16:00
--  如何在某窗体禁用全局表事件
For Each c As object In e.Form.Controls
    If Typeof c Is WinForm.Table Then \'判断控件是否是文本框
        Dim t As Table = c.Table \'使用特定类型的变量引用控件
        t.DataTable.DeleteFor("")
        t.DataTable.GlobalHandler.CurrentChanged = False
        t.DataTable.GlobalHandler.PositionChanged= False
        t.DataTable.GlobalHandler.AfterSelChange= False
        t.DataTable.GlobalHandler.AfterSelRangeChange= False
        t.DataTable.AddUserStyle("浅红", Color.MistyRose, Color.black)
        t.DataTable.AddUserStyle("浅蓝", Color.LightSkyBlue, Color.black)
        t.DataTable.AddUserStyle("浅黄", Color.PapayaWhip, Color.black)
        t.DataTable.AddUserStyle("浅绿", Color.LightGreen, Color.black)
    End If
Next

某个窗体中我有多个查询表,在窗体afterload中我加了这样的代码
但是貌似全局表事件还是会执行,怎么破?

--  作者:huangxueyao
--  发布时间:2018/7/10 10:36:00
--  
是因为我用了fill然后相当于重新加载了datatable??
--  作者:huangxueyao
--  发布时间:2018/7/10 10:39:00
--  
或者用了SQLcommand加载的也要重新禁用?
--  作者:有点甜
--  发布时间:2018/7/10 11:00:00
--  

1、测试是否执行,在对应事件加入代码,看状态栏是否变化

 

StatusBar.Message1 = e.Table.name & " " & Date.now

StatusBar.Refresh

 

2、你重新fill或者重新设置datasource,全局表事件默认是不开启的,如果有问题,做个例子发上来测试。