Datagridview异常:DGV.Clear上的'Reentrant Call'

时间:2015-10-16 23:02:30

标签: .net vb.net exception datagridview reentrancy

我明白了。 Datagridview cannot be in the process of changing ANYTHING。我不认为我,但我偶尔会得到这个例外。这就是奇怪的事情。超过90%以上的时间它运作得很好。

我在Windows窗体上有一个tabcontrol,并且多个tabpages都有datagrid视图控件。它们都不绑定到数据库。当用户浏览标签页时,每个标签页的“输入”和“离开”事件都有代码。进入标签页后,如果有DGV控件,则会有一行代码清除所有行。

xterm

Tab3_Plan_Enter事件处理程序中的AutoSizeRowMode是否与此有关?如果是这样,我怎么能克服它?将Tab3_Plan_Enter中的两行代码重新排序是一个好主意吗?

1 个答案:

答案 0 :(得分:1)

当您尝试对当前正在使用的单元格执行某些操作时,会引发此异常。

尝试在DGV.Rows.Clear()之后添加一个Thread.Sleep(5000),以便给它一些时间来清除DataGridView。既然你说它有时只发生,可能是因为DataGridView有太多行而且需要一段时间才能清除所有内容。由于您之后可能会添加更多行,因此这是一种可行的方案。

如果有效,你可以减少睡眠的秒数,以便只在需要的时候停止线程。