我明白了。 Datagridview cannot be in the process of changing ANYTHING。我不认为我是,但我偶尔也会得到这个例外。这真是太奇怪了。超过90%以上的时间工作得很好。Datagridview异常:DGV上的'Reentrant Call'清除
我有一个windows窗体上的tabcontrol和多个tabpages有datagrid视图控件。它们中没有一个绑定到数据库。当用户浏览标签页时,每个标签页的“输入”和“离开”事件都有代码。在进入标签页时,如果有DGV控制,则有一行代码清除所有行。
Private Sub Tab3_Plan_Enter(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles Tab3_Plan.Enter
dgPlan.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells
CircuitItems = LoadCatalogItems(dgPlan, cbVDSvcLocation, iKind.PlanSku)
' More event code
Private Function LoadCatalogItems(ByRef DGV As DataGridView, _
ByVal cbControl As System.Windows.Forms.ComboBox, _
ByRef ItemKind As Integer) As Integer
Dim DescDGName As String
Dim OrigInternalDesc As String
Dim DisplayDesc As String
DGV.Rows.Clear() ' <-- This is where the exception is thrown
' More function code
Tab3_Plan_Enter事件处理程序中的AutoSizeRowMode是否可以与此有关?如果是这样,我该如何克服它?重新排序Tab3_Plan_Enter中的两行代码是个好主意吗?
我想你的意思是在DGV.Rows.Clear之前。我试试看。可能需要一段时间才能知道这是否能解决问题。 – Ebassador