嗨:)基本上我有一个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
答案 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