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()..."行
有任何想法吗?干杯
我发现如果你加入
DataGridView.DataSource = Nothing
DataGridView.Refresh()
Run Code Online (Sandbox Code Playgroud)
在将网格重置为集合之前(删除已删除的项目)
DataGridView.DataSource = MyCollection
Run Code Online (Sandbox Code Playgroud)
它就像一个魅力.仍然有兴趣为什么你必须这样做.