该操作无效,因为它导致对SetCurrentCellAddressCore函数的可重入调用

时间:2019-02-14 08:51:57

标签: .net vb.net winforms desktop

我正在尝试验证输入到单元格中的值。如果可以,请执行其他操作以删除整行,但会引发异常“操作无效,因为这会导致对SetCurrentCellAddressCore函数的可重入调用”

 Private Sub DgvItems_CellEndEdit(sender As Object, e As DataGridViewCellEventArgs) Handles DgvItems.CellEndEdit
    If e.ColumnIndex = 0 Then
        Dim cl As DataGridViewCell = DgvItems.Rows(e.RowIndex).Cells(0)
        Dim product As New Product(cl.Value)
        If String.IsNullOrWhiteSpace(product.SKU) Then
            MessageBox.Show("Product not found!", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Warning)
            Dim row As DataGridViewRow = DgvItems.Rows(e.RowIndex)
            DgvItems.Rows.Remove(row) 'An exception is raised here

        Else
            Dim inv As New ProductInventory(product.SKU)
            Dim qt As Integer = inv.TargetLevel - (inv.StockLevel + inv.OldStock)
            DgvItems.Rows(e.RowIndex).Cells(1).Value = product.Barcode
            DgvItems.Rows(e.RowIndex).Cells(2).Value = product.Name
            DgvItems.Rows(e.RowIndex).Cells(3).Value = product.BuyPrice
            If qt < 0 Then
                DgvItems.Rows(e.RowIndex).Cells(4).Value = "1"
            Else
                DgvItems.Rows(e.RowIndex).Cells(4).Value = qt
            End If
        End If
    End If
End Sub

0 个答案:

没有答案