加个判断
e.Table.Refresh
If e.OldRange.RowSel <> e.NewRange.RowSel '如果选择的是不同的行
If e.OldRange.RowSel >= 0 AndAlso e.OldRange.Rowsel < e.Table.Rows.Count Then '而且原来选择的是一个有效的数据行
Dim r As Row = e.Table.Rows(e.OldRange.Rowsel) '获得原来选择的行
r.Save() '保存之
r = e.Table.Rows(e.NewRange.Rowsel)
If r.DataRow IsNot Nothing AndAlso r.DataRow.RowState = DataRowState.Modified Then
r.Save
r.DataRow.Load
End If
End If
End If