1

我的程序需要一个复选框项目,并根据发票上项目上的序列号,从金额列表中减去一个,我在详细信息页面上的列表视图中有以下内容,我添加了以下代码:

项目 - 低袜(粉红色)
序列号 - 34-75-860
价格 - 5.89
数量 - 12

除了它们在列中而不是像上面那样的行中

Dim items As New ListViewItem
    items = ListView1.Items.Add("Low Socks(Pink)")
    items.SubItems.Add("34-75-860")
    items.SubItems.Add("$5.89")
    items.SubItems.Add("12")

    items = ListView1.Items.Add("Low Socks(Black)")
    items.SubItems.Add("34-75-900")
    items.SubItems.Add("$5.89")
    items.SubItems.Add("25")

    items = ListView1.Items.Add("Low Socks(Red)")
    items.SubItems.Add("34-75-756")
    items.SubItems.Add("$5.89")
    items.SubItems.Add("10")

    items = ListView1.Items.Add("Low Socks(Orange)")
    items.SubItems.Add("34-75-234")
    items.SubItems.Add("$5.89")
    items.SubItems.Add("34")

    items = ListView1.Items.Add("Low Socks(Blue)")
    items.SubItems.Add("34-75-598")
    items.SubItems.Add("$5.89")
    items.SubItems.Add("23")
End Sub

在我的发票页面下,发票上的项目旁边有复选框。单击复选框时,我希望金额减少一。我稍后会进去,将其更改为实际需要的数量,具体取决于他们订购的商品数量......我的复选框编码是这样的:

Dim item As ListViewItem
    Dim i As Integer
    Dim count As Integer

    'count the number of items in itemdetails2 listview
    count = ItemDetails2.ListView1.Items.Count - 1

    'loop to read each item in the list
    For i = 1 To count

        If i > count Then Exit For

        item = ItemDetails2.ListView1.Items(i)

        'compare the item to the serial number
        If item.Checked = True Then

            If (item.SubItems(0).Text = "34-75-860") Then
                item.SubItems(2).Text -= 1
            End If

            i = i + 1
            count = count - 1
        End If

    Next

    ItemDetails2.Show()
End Sub

现在看起来它什么也没做。我尝试将我的子项上的索引更改为 1 和 3 而不是 0 和 2,但我认为因为它们是子项,所以它们需要是子项索引 0 和子项索引 2,因为该项有一项和三个子项。如果这有意义....请帮忙。

4

1 回答 1

2

在不深入研究索引内容的情况下,我可以注意到您将字符串视为数字

item.SubItems(2).Text -= 1

当你应该尝试:

item.SubItems(2).Text -= CStr(CDec(item.SubItems(2).Text) - 1D)

我希望这会有所帮助...

于 2012-04-18T18:31:13.307 回答