.Net DataGridView"索引0没有值."

Ben*_*Ben 4 .net datagridview winforms

我遇到了DataGridView的问题.当尝试删除其中一个项目并重新加载网格时,我有一个绑定到网格的3个项目的集合.

如果有代码

If (dlg.ShowDialog() = DialogResult.OK) Then
     'Show dialog with grid on it
End If
Run Code Online (Sandbox Code Playgroud)

在打开的对话框中,我从网格中删除一个项目(应该从集合中删除项目,然后重新加载网格),然后返回到"If(dlg.show ..."行,有错误的

"在System.Windows.Forms.dll中发生'System.IndexOutOfRangeException'类型的第一次机会异常

附加信息:索引2没有值."

(我已经打破调试器设置为公共语言运行时错误)

如果我试图访问任何单元格,行或列,我可以理解这个错误,但我不会,然后我希望异常停止在试图访问此网格数据的代码行上,而不是"If( dlg.ShowDialog()..."行

有任何想法吗?干杯

Ben*_*Ben 8

我发现如果你加入

DataGridView.DataSource = Nothing
DataGridView.Refresh()
Run Code Online (Sandbox Code Playgroud)

在将网格重置为集合之前(删除已删除的项目)

DataGridView.DataSource = MyCollection
Run Code Online (Sandbox Code Playgroud)

它就像一个魅力.仍然有兴趣为什么你必须这样做.