在老版中,用AddNew新增行、然后引发当前表的
CurrentChanged事件。在
CurrentChanged事件中,以下代码是可以正常通过的:
If e.Table.Current IsNot Nothing
MessageBox.Show("当前Table共 " & e.Table.Rows.Count & "行! ")
dim r as Integer = e.Table.Current.Index '当前行
e.Table.Select(r,0) '选择当前行第一列
End If但用了今天的新版以后,上面的代码就出错了。经认真分析发现,新版在执行了AddNew以后,Table的新增行已经产生,count也发生了变化,但这时该行并未加载进table,反而是先执行
CurrentChanged事件,然后才加载行。
老版的执行顺序是:先新增行、然后加载该行、再执行
CurrentChanged事件;
新版则是:先新增行、然后执行
CurrentChanged事件、再加载该行。
按新版的这种处理方法,上述代码只能改成这样。这样的代码看起来实在别扭:
If e.Table.Rows.Count > 1
dim r as Integer = e.Table.Current.Index '当前行
e.Table.Select(r,0) '选择当前行第一列
End If
期望老六还能改回原来的那种处理方式!
[此贴子已经被作者于2009-8-18 21:54:34编辑过]
这样不会有问题了:但也不会提示了~
If e.Table.position >= 0 then If e.Table.Current IsNot Nothing
MessageBox.Show("当前Table共 " & e.Table.Rows.Count & "行! ")
dim r as Integer = e.Table.Current.Index '当前行 必须时可见的行
e.Table.Select(r,0) '选择当前行第一列
End If
End If
[此贴子已经被作者于2009-8-18 23:15:56编辑过]
呵呵,我抽空看看,不过有些变化我也没有办法控制的.
问题大了,连
BeforeAddDataRow事件设置都有问题。看来这个AddNew还要老六认真对待一下,我现在关键的录入模块都出错了。
请老六看看这个例子: