CurrentChanged
选择不同数据行后执行,也就是Current属性发生变化后执行。
e参数属性:
Table:
引发事件的Table
假定我正在订单表操作,我们希望在订单表中选定一行时,客户表的光标能够自动定位到该客户,这样我一旦从订单表回到客户表,即可看到刚刚所选订单的客户资料。
为此我们在CurrentChanged事件中设置如下代码:
If e.Table.Current
Is Nothing Then
'如果Current为Nothing
Return
'则返回
End If
Dim
这种在不同表之间联动的技巧应该掌握,也许你觉得通过关联,不就可以在订单表中以关联表的形式显示客户信息吗?
但是:
1、有的时候我们并不希望建立太多的关联。
2、即使建立了关联,我们也可能关闭了Foxtable的双向关联特性,这样就无法以关联表的形式查看父表数据了。
示例二
选择某一行的时候,我们有时会希望根据该行的状态给使用者一些提示。
例如你正在使用一个送水系统,其中有一列为“剩余桶数”,你希望选择某一行时,能够根据剩余桶数给接线员一些提示。
为此我们在CurrentChanged事件中设置如下代码:
If e.Table.Current
Is Nothing Then
'如果Current为Nothing
StatusBar.Message1 =
""
Else
Dim
注意事项
如果筛选后,表中没有符合条件的行,或者在汇总模式下,选择分组行,此时表的Current返回Nothing,因为此时并不存在当前行,通过Current来引用数据会出错。
所以在CurrentChanged事件中,一定要判断Current是否为Nothing,再执行相应的代码:
If e.Table.Current
Is Nothing Then
'如果Current为Nothing
'没有选定行时执行的代码
Else
'有选定行时执行的代码
End If