首页 > 解决方案 > 使用动态数组更新列表框上的值

问题描述

我在更改列表框中项目数量的值时遇到了一个异常问题。我的代码能够更改第一项数量的值,但我不明白为什么循环不会更改其他数量的值。

我在全局声明了两个(动态)数组:arrProduct - 保存项目的数量和 arrProductID - 跟踪要更改的项目数量,它同时存储项目 ID 作为字符串变量 temp-

全局变量:

Dim dailySale As Decimal
Dim stringF As String = "{0,10},{1,83},{2,55}"
Dim stringP As String = "{0,10},{1,25},{2,60}"

Dim arrProductID(100) As Integer
Dim arrProduct(100) As Integer
Dim c As Integer = 0
Dim temp As String = ""

代码:

 Private Sub btnEnter_Click(sender As Object, e As EventArgs) Handles btnEnter.Click
    'Adds an item to the checkbox list when making a sale
    Dim ItemID As Integer = txtSalesProductID.Text
    Dim rowNum As Integer = (Group16DataSet1.Product.Rows.Count) - 1

    Dim valid As Boolean = False


    For value As Integer = 0 To rowNum
        If (ItemID = Group16DataSet1.Product.Rows(value).Item(0)) Then
            valid = True

            If (temp.Contains(ItemID.ToString)) Then
                MsgBox("AGAIN")

                For i As Integer = 0 To c - 1
                    If (arrProductID(i) = ItemID) Then
                        productList.Items.RemoveAt(i + 2)
                        arrProduct(i) += 1
                        productList.Items.Add(String.Format(stringP, Group16DataSet1.Product.Rows(i).Item(1).ToString, arrProduct(i), "R " + Group16DataSet1.Product.Rows(i).Item(4).ToString))
                        MsgBox(i)
                    End If
                Next

            Else
                MsgBox("ENTERED ONCE")
                temp = temp + "," + Group16DataSet1.Product.Rows(value).Item(0).ToString

                ReDim arrProductID(100)
                ReDim Preserve arrProductID(c)
                arrProductID(c) = 1

                ReDim arrProduct(100)
                ReDim Preserve arrProduct(c)
                arrProduct(c) = 1

                productList.Items.Add(String.Format(stringP, Group16DataSet1.Product.Rows(value).Item(1).ToString, arrProduct(c), "R " + Group16DataSet1.Product.Rows(value).Item(4).ToString))

                c += 1
            End If
        End If

    Next

    If valid = False Then
        MsgBox("Product not in stock")
    End If

    For i As Integer = 0 To (productList.Items.Count - 1)
        '  ProductList.SetItemChecked(i, True)
    Next
End Sub

感谢您花时间阅读此请求。任何帮助深表感谢。

标签: vb.net

解决方案


推荐阅读