如何从已检查的ListViewBox vb.net获取数据

时间:2016-01-22 22:42:02

标签: vb.net listview listbox checkedlistbox

嗨:)基本上我有一个Checked ListViewBox(我在属性部分选择了“checked = true”)。我需要能够从listViewBox中的已检查项目/行中获取数据,以便在文本框中计算总价格。我有一个组合框,您可以在其中选择要在ListViewBox中显示的文件(因此lvwbox可以在3个不同的文件之间切换,但我可以使用简单的If语句解决此问题 - 如果cboDate =“... ..“然后.....等。所以这不是问题)

我会在这里发布我的表单的截图,所以它更有意义但基本上,我需要编写一些东西,让我在ListViewBox中选择多个项目,然后根据这些选择显示总价格(顺便说一下每个项目在盒子里有不同的价格)

文件名是JuneEvent,JulyEvent和AugEvent,每个文件名都有几个记录字段,分别是ClassID,ClassDescripion,ClassTime和ClassPrice。

我已经坚持了很久,有人可以帮助我!谢谢lol:P

P.S 目前我在表单上唯一的代码是根据组合框中选择的内容在ListViewBox中显示某个文件...

Click here to see the screenshot of program form

Here is the form in action - 忽略右侧的表格 - 我稍后会处理

编辑:最新代码:

Private Sub lvwEvents_ItemChecked(ByVal sender As Object, ByVal e As System.Windows.Forms.ItemCheckedEventArgs) Handles lvwEvents.ItemChecked
        Dim totalAmt As Double = 0
        For Each lv As ListViewItem In lvwEvents.Items
            If lv.Checked = True Then
                totalAmt += JuneEvent.ClassPrice
            End If
        Next
        txtPrice.Text = FormatNumber(totalAmt, 2)
End Sub 

2 个答案:

答案 0 :(得分:0)

由于您没有发布我们要学习的代码,因此我只需在此处添加您需要执行的操作的代码。我希望你能用它作为参考。

     Private Sub ListView1_ItemChecked(ByVal sender As Object, ByVal e As System.Windows.Forms.ItemCheckedEventArgs) Handles ListView1.ItemChecked
        Dim totalAmt As Double = 0 
        For Each lv As ListViewItem In ListView1.Items
            If lv.Checked = True Then
                totalAmt += Val(lv.Text)
            End If
        Next
        lblLabelForYourTotalAmt.Text = FormatNumber(totalAmt,2)
     End Sub

我在这里假设 ListView1.Items(0).Text 是要求和的数量。

答案 1 :(得分:0)

我的朋友设法为我解决了这个问题:这是最终结果:

  Private Sub lvwEvents_ItemChecked(ByVal sender As Object, ByVal e As System.Windows.Forms.ItemCheckedEventArgs) Handles lvwEvents.ItemChecked
    Dim totalAmt As Double = 0
    'check what items are checked in list view
    For Each lv As ListViewItem In lvwEvents.Items
        If lv.Checked = True Then
            'add checked items value to total
            totalAmt += Double.Parse(lv.SubItems(4).Text.Substring(1))
        End If
    Next
    'display total price
    txtPrice.Text = FormatNumber(totalAmt, 2)
End Sub