我明白了。 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