在老版中,用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编辑过]