DataColChanging
某一列的内容发生变化前执行,此时新值还没有写入表中,列的内容还是更改前的值。
利用此事件,我们可以在某列内容发生变化之前进行拦截判断,如果不符合特定的条件,则取消此次变化,或者重新指定一个值。
e参数属性:
DataTable: 返回发生数据更改的数据表。
DataRow:
返回发生数据更改的数据行。
DataCol: 返回数据更改的数据列。
NewValue:
Object类型,表示新的值
OldValue: Object类型,表示旧的值
Cancel:
逻辑(Boolean)类型,设为True取消更改。
示例一
例如在订单表中,要求折扣列的值不能超过0.15,可以在DataColChanging事件中设置如下代码:
If e.DataCol.Name = "折扣"
Then
'如果是折扣列的内容发生变化。
If e.NewValue > 0.15
Then
'如果新值大于0.15。
e.Cancel =
True
'取消变动。
End
If
End
If
上面的代码在折扣超出0.15后,取消此次变动;如果希望在折扣超出0.15后,自动改为0.15,代码如下:
If e.DataCol.Name =
"折扣" Then
'如果是折扣列的内容发生变化。
If e.NewValue >
0.15 Then
'如果输入的内容大于0.15。
e.NewValue = 0.15
'那么改为0.15。
End If
End If