2009-12-29 43 views
0

我有一个未绑定的DataGridView,它用DataGridViewRows手动填充。 AllowUserToAddRows设置为false,一切按预期工作 - 网格中没有显示NewRow。.NET未绑定DataGridView AllowUsersToAddRows问题

在一种方法中,我添加更多行,编辑一些行并删除其他一些行。这些操作很好,但是在这些操作之后NewRow变得可见。 NewRowindex属性从-1更改为一个值,表示它是实际索引,但AllowUsersToAddRows属性保持为false。这发生在幕后的某处,就像我在调试时看到的那样,我的代码中没有任何地方,NewRowIndex不会从-1更改为更大的值。

有没有人有任何线索可能是错误在这里,或者可能是一些细节,我可能会失踪?

后来我会尝试在一个更简单的项目中重现此行为并在此粘贴一些代码。

编辑:好了,所以试图重现bug在一个简单的项目,我注意到,只有当所有的添加/编辑后/删除我设置了出现这种情况:

dgMap.CurrentCell = null; 

回答

0

这听起来像一个框架内的错误......您使用的是哪个版本?

此外,我可以建议始终将CurrentCell属性设置为有效的有效(如dgMap.CurrentCell = dgMap.Rows(0).Cells(0);)?如果您尝试访问选定的单元格,它可以为您节省一些麻烦。

+0

这对我来说也是一个错误。我使用的是.NET 3.5,但DataGridView是在2.0程序集中定义的。 嗯,起初我想将当前单元格设置为null,但是当我遇到这个错误时(它会很好,如果null值不是针对此属性的 - set操作会抛出ArgumentException或类似的一个) - 我试图将其设置为(0,0)单元格。由于此代码在DataGridVeiwComboBoxCell中承载的Combobox的SelectedIndexChanged事件处理程序中执行,所以当此事件内部设置当前单元格为(0,0)时 - 我得到可重入的调用异常。 – Hassan 2009-12-30 12:43:58

+0

我只是用Reflector来看看它,而属性的第一行是一个针对Null的检查...我很疑惑,因为如果你传入null值,Property不会设置_anything_ ...至少它不应该根据反映的代码。 – Bobby 2009-12-30 12:53:28