VS2022中DataGridViewRowEventArgs无Cancel属性,无法取消行删除事件?
解决DataGridView取消行删除的问题
你用错了事件类型:
UserDeleteRow事件是行删除完成后才触发的,它的参数DataGridViewRowEventArgs确实没有Cancel属性——因为此时删除操作已经结束,根本没法取消。- 要实现取消行删除的需求,得绑定**
UserDeletingRow事件**,这个事件是在行删除操作执行前触发的,它的参数是DataGridViewRowCancelEventArgs,自带Cancel属性,设置为true就能直接取消删除。
正确的代码示例:
private void dataGridView1_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e) { // 填入你的判断条件 if (/* 触发取消的条件 */) { e.Cancel = true; // 取消删除操作 } }
补充说明:
- 如果是在VS设计器里绑定事件,要在DataGridView的事件列表里找
UserDeletingRow,别再选UserDeleteRow了。 - 两个事件的核心区别就是触发时机:
UserDeletingRow是删除前的拦截节点,UserDeleteRow只是删除完成后的通知节点,按需选择就行。
内容的提问来源于stack exchange,提问作者Felix
相关产品推荐
相关产品推荐

