1

执行此按钮事件时出现错误:这是我的代码:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    Handles Button1.Click

    Try
        ' get the details of the item
        Dim R As Your_pharmacy.POSDS.ItemsRow = Button1.Tag

        ' next search for the barcode in the datagridview
        Dim I As Integer
        Dim ItemLoc As Integer = -1
        For I = 0 To DGV1.Rows.Count - 1
            If R.barcodeNumber = DGV1.Rows(I).Cells(0).Value Then

                ' item found
                ItemLoc = I
                Exit For

            End If
        Next

        ' if item is not found, add it
        If ItemLoc = -1 Then
            DGV1.Rows.Add(R.barcodeNumber, R.ItemName, R.BuyPrice, R.SellPrice, 1, R.SellPrice)
        Else
            ' if item is already there increase its count
            Dim ItemCount As Long = DGV1.Rows(ItemLoc).Cells(4).Value
            ItemCount += 1
            Dim NewPrice As Decimal = R.SellPrice * ItemCount
            DGV1.Rows(ItemLoc).Cells(4).Value = ItemCount
            DGV1.Rows(ItemLoc).Cells(5).Value = NewPrice
        End If

        ' next clear textbox1 and set focus to it
        TextBox1.Text = ""
        TextBox1.Focus()



        ' compute the total for the recipt
        Dim Sum As Decimal = 1
        For I = 0 To DGV1.Rows.Count - 1
            Sum += DGV1.Rows(I).Cells(5).Value 'here the error happens
        Next

        TextBox4.Text = Sum

    Catch ex As Exception
        MsgBox(ex.Message, MsgBoxStyle.Critical Or MsgBoxStyle.OkOnly, "Error")
    End Try
End Sub

错误详情:

错误:索引超出范围。必须为非负数且小于集合的大小。参数名称:index vb.net

4

1 回答 1

0

DGV1 的单元数必须少于 5 个。发生错误时,使用断点和调试监视窗口查看 DVG1(I) 中有多少个单元。也许第一个是用零单元格创建的?

于 2013-09-06T00:03:49.880 回答