【发布时间】:2013-06-04 18:47:18
【问题描述】:
我正在尝试了解 RowChanging 和 Rowchanged 数据表事件之间的区别。我查看了 MSDN 博客,但没有发现任何实际差异。
这是我得到的:
- 两者都使用相同的
Datarowchangeeventargs:因此它们具有相同的事件数据集。 即;e.Action和e.row。
在监视窗口中,我检查了这些事件数据是否有任何更改,但它们相似。如果 RowChanging 中有 Cancel ,那么这意味着验证。
总而言之,我很困惑为什么这两个事件的意思相同。
请解开我的困惑。
这是我的区别,这是我根据从答案中得到的指针发现的。
我在列中添加了几行并调用了这两个事件。我尝试对更改和更改事件执行 e.Row.RejectChanges() 那是我意识到 e.Row 实际上是建议的行的时候。 所以 Rejectchanges 给了我错误“不能在行更改事件中取消编辑()”。 但它允许在 RowChanged 事件中发生拒绝。 所以发生了以下顺序: 1.换行事件 e.Action=Added(因为我正在向表中添加多行) e.Row.RowState=分离。 2. RowChanged 事件 e.Action=添加 e.Row.RowState=已添加(红色,因为此处已更改并添加到数据表中)
至于例外: 我收到“无法在行更改事件中调用所有 CancelEdit()”
在 rowChanged 事件中我得到“该行已从表中删除并且没有任何数据。BeginEdit() 将允许在该行中创建新数据。”
请指导我上面的行更改事件异常。
【问题讨论】: