以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]DataColChanged和DataColChanging (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=80905) |
-- 作者:poiokm26 -- 发布时间:2016/2/7 21:29:00 -- [求助]DataColChanged和DataColChanging 正学到事件编程部份,自己试了几个代码.发现DataColChanged的代码放到DataColChanging中运行得到的效果是相同的. 希望能介绍几个例子或贴子让我更多了解一下. 另外:大家新年快乐!
|
-- 作者:Hyphen -- 发布时间:2016/2/12 9:03:00 -- 知道DataColChanging是在数据写入单元格之前触发,而DataColChanged是在数据写入单元格之后触发的就行。 一般DataColChanging多用来进行数据验证,可以通过e.Cancel = True取消数据写入
|
-- 作者:大红袍 -- 发布时间:2016/2/13 23:29:00 -- DataColChanging事件的时候,修改的值并没有写入到表,只能用如 e.NewValue 获取,不能用如 e.DataRow("列名") 取得值。 |
-- 作者:poiokm26 -- 发布时间:2016/2/14 13:19:00 -- If e.DataCol.Name = "金额"
Then 这段代码如果在DataColChanged运行就不起作用,DataColChanging运行正常 但是在DataColChanging中改动一下 If e.DataCol.Name = "金额" Then If e.dataRow("金额") = 0 Thene.dataRow("金额") = Nothing End if End If 这时就运行的起来就会死机退去.个人理解为: e.NewValue 跟 e.dataRow("金额") = Nothing 发生冲突. 但这段改动过的代码放在DataColChanged中运行就起作用了. 老师还有没有补充..? |
-- 作者:大红袍 -- 发布时间:2016/2/15 9:19:00 -- 1、在ed事件里,不能再修改newvalue的值了。
2、在ing事件里,尽量不要用 e.DataRow("当前触发的列名") |