Foxtable(狐表)用户栏目专家坐堂 → 全局表事件无效


  共有8450人关注过本帖树形打印复制链接

主题:全局表事件无效

帅哥哟,离线,有人找我吗?
blackzhu
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2012/6/9 14:07:00 [显示全部帖子]

为了提高系统效率,在默认情况下,只有CurrentChanged、PositionChanged、AfterSelChange、AfterSelRangeChange四个全局表事件对所有表有效, 而其它全局表事件即使设置了代码,也不会发生作用。
当然这并不意味着其它全局表事件永久无效,只是这些表事件需要一个“开关”去开启。
DataTable有一个GlobalHandler属性,该属性包括以下子属性,对应着每一个全局表事件

AfterCheckRow
AfterDragColumn
AfterEdit
AfterFilter
AfterFreezeColumn
AfterLoad
AfterLockDataRow
AfterMoveRow
AfterResizeColumn
AfterResizeRow
AfterSelChange
AfterSelRangeChange
AfterSort
AfterUnlockDataRow
Click
BeforeAddDataRow
BeforeAttachFile
BeforeCheckRow
BeforeDeleteDataRow
BeforeDragColumn
BeforeDrawRow
BeforeFilter
BeforeFreezeColumn
BeforeLoad
BeforeLockDataRow
BeforeResizeColumn
BeforeResizeRow
BeforeSaveDataRow
BeforeSelChange
BeforeSelRangeChange
BeforeShowContextMenu
BeforeSort
BeforeUnlockDataRow
CellButtonClick
ChangeEdit
CurrentChanged
DataColChanged
DataColChanging
DataRowAdded
DataRowAdding
DataRowDeleted
DataRowDeleting
DoubleClick
DrawCell
KeyDown
KeyDownEdit
KeyPressEdit
KeyUp
KeyUpEdit
PositionChanged
PrepareEdit
SetupEditor
StartEdit
ValidateEdit

这些属性都是逻辑型,如果要使某个全局表事件对该DataTable有效,只需将对应的属性设为True即可。
这些属性中,
只有CurrentChanged、PositionChanged、AfterSelChange、AfterSelRangeChange的默认值为True,这也就是为什么默认只有这四个全局表事件有效的原因。

例如要使全局表事件AfterEdit事件对表A有效,只需:

DataTables("表A").GlobalHandler.AfterEdit = True

要使全局表事件AfterEdit事件对所有表有效,只需:

For Each dt As DataTable In DataTables
    dt.GlobalHandler.AfterEdit
= True
Next


 回到顶部