如何解决dataGridView的userDeletingRow事件、userDeletedRow事件的BUG?

ddowncc 2012-09-19 08:37:34
userDeletingRow事件、userDeletedRow事件在dataGridView剩下一行的时候,居然不触发事件。微软的BUG还真多...

用RowsRemovedw代替的话,在dataGridView剩下一行时会触发,但From_load、AddRows等过程RowsRemoved事件都会触发,晕了。我现在只要用户选择行后(一行或多行)按delete后执行。


相同问题,07年CSDN就有朋友提到过:VS2005的Bug?为何事件会丢失。。 但可惜相关解释外链已失效










...全文
296 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
超级大咸鱼 2012-09-20
  • 打赏
  • 举报
回复
客户根本不关心你用什么方法删除的,只需要达到效果又不影响效率即可,何必纠结于这个产自VS自身的bug呢...
ddowncc 2012-09-20
  • 打赏
  • 举报
回复
求解答
qldsrx 2012-09-20
  • 打赏
  • 举报
回复
从未用过那个事件,只用过DataTable的相关事件:RowDeleted、RowDeleting等,那个事件没任何问题。
如果是List<T>,也有相关事件,对数据源设置事件不是更好吗?换个控件代码都不必重写。
ddowncc 2012-09-20
  • 打赏
  • 举报
回复
追加20分
ddowncc 2012-09-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
为什么要那样删除呢,自己写个方法不行吗?

C# code

private void FrmItemBackApply_KeyDown(object sender, KeyEventArgs e)
{
if (!dgv_Data.Focused)
{
return;
……
[/Quote]

问题的关键是,为什么剩下最后一行时,为什么delete的相关事件不触发呢?想删除那行容易,但这个问题比较难。
燕雀之志 2012-09-20
  • 打赏
  • 举报
回复
为什么要那样删除呢,自己写个方法不行吗?

private void FrmItemBackApply_KeyDown(object sender, KeyEventArgs e)
{
if (!dgv_Data.Focused)
{
return;
}
if (dgv_Data.Rows.Count <= 0)
{
return;
}
if (Keys.Delete == e.KeyCode)
{
if (dgv_Data.Rows.Count > 0 && dgv_Data.CurrentCell.IsInEditMode)
{
return;
}
DelGridRow();
}
}
private void DelGridRow()
{
if (PageState == WinState.Add || PageState == WinState.Modify)
{
DataGridViewRow row = dgv_Data.CurrentRow;
itemHash.Remove(row.Cells["flngstockallotid"].Value.ToInt());
dgv_Data.Rows.Remove(row);
}
}


这是我的删除行,你看一下。
ddowncc 2012-09-20
  • 打赏
  • 举报
回复
参考:http://topic.csdn.net/u/20071224/16/11882dad-97ff-4e4d-810a-d1c5b3c3108a.html

我的问题和这个一样。



UserDeletedRow事件在删除最后一行的时候,该事件竟然不激发。。。汗~~


删除其它行没有任何问题,只是最后一行的时候,相应的操作都不会激发事件
包括UserDeletedRow、UserDeletingRow、NewRowNeeded等事件。。。。

ddowncc 2012-09-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

没看懂你想表达的意思。
[/Quote]

dataGridView只有一行数据的时候,选中这一行数据,按"delete"键,userDeletingRow、userDeletedRow事件是不会触发的。一行以上数据时,事件才会触发。
燕雀之志 2012-09-20
  • 打赏
  • 举报
回复
没看懂你想表达的意思。
ddowncc 2012-09-20
  • 打赏
  • 举报
回复
求解答。
ddowncc 2012-09-20
  • 打赏
  • 举报
回复
自己已解决,用SelectionChanged代替

109,888

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧