.NET未绑定DataGridView AllowUsersToAddRows问题

.NET未绑定DataGridView AllowUsersToAddRows问题,.net,winforms,datagridview,.net,Winforms,Datagridview,我有一个未绑定的DataGridView,它手动填充DataGridViewRows。AllowUserToAddress设置为false,一切正常-网格底部不显示新行 在一种方法中,我添加一些行,编辑一些行,删除一些其他行。这些操作工作正常,但在这些操作之后,新行变为可见。NewRowindex属性从-1更改为值,表示它是实际索引,但AllowUsersToAddRows属性保持为false。这发生在幕后的某个地方,在我的代码中没有,就调试时我所能看到的,NewRowIndex不会从-1更改为

我有一个未绑定的DataGridView,它手动填充DataGridViewRows。AllowUserToAddress设置为false,一切正常-网格底部不显示新行

在一种方法中,我添加一些行,编辑一些行,删除一些其他行。这些操作工作正常,但在这些操作之后,新行变为可见。NewRowindex属性从-1更改为值,表示它是实际索引,但AllowUsersToAddRows属性保持为false。这发生在幕后的某个地方,在我的代码中没有,就调试时我所能看到的,NewRowIndex不会从-1更改为更大的值

有没有人知道这里可能出了什么问题,或者我可能遗漏了一些细节

稍后,我将尝试在一个更简单的项目中重现这种行为,并在这里粘贴一些代码

编辑:好的,我注意到,为了在一个更简单的项目中重现这个bug,只有在所有添加/编辑/删除之后,我设置了:

dgMap.CurrentCell = null;

这听起来像是框架中的一个bug…您使用的是哪个版本


另外,我是否可以建议始终将CurrentCell属性设置为有效值,如dgMap.CurrentCell=dgMap.Rows0.Cells0;?如果您尝试访问选定的单元格,它可以为您节省一些麻烦。

我也觉得这是一个bug。我使用的是.NET3.5,但DataGridView是在2.0程序集中定义的。首先,我想将当前单元格设置为null,但是当我遇到这个错误时,如果null值不是用于这个属性的,那么设置操作会抛出ArgumentException,或者类似的异常,我会尝试将其设置为0,0单元格。由于此代码在组合框的SelectedIndexChanged事件处理程序中执行,托管在DataGridVeIwcomboxCell中,因此在该事件中,我将当前单元格设置为0,0-我得到可重入调用异常。我刚刚用Reflector查看了它,属性的第一行是对Null的检查…我感到困惑,因为如果将null值传递给属性,则该属性不会设置任何内容…至少根据反射的代码,它不应该设置任何内容。