如何在CheckedListBox vb.net中添加项目
基本上,我有一个复选框,其中的每个项目都有相应的价格。我该如何编写代码,以便 1) 当选择其中一个项目时,相关价格存储在代码中的某个位置,并且 2) 然后如何将这些价格相加(例如,如果选中了几个项目,我希望将价格相加并在文本框中显示总价) 我在“Visual Studio Express for desktop”上做这项工作,所以基本上是vb.net如何在CheckedListBox vb.net中添加项目,vb.net,visual-studio,checkedlistbox,checkeditems,Vb.net,Visual Studio,Checkedlistbox,Checkeditems,基本上,我有一个复选框,其中的每个项目都有相应的价格。我该如何编写代码,以便 1) 当选择其中一个项目时,相关价格存储在代码中的某个位置,并且 2) 然后如何将这些价格相加(例如,如果选中了几个项目,我希望将价格相加并在文本框中显示总价) 我在“Visual Studio Express for desktop”上做这项工作,所以基本上是vb.net 下面是一个概念性示例,我在一个窗口窗体项目中使用Console.WriteLine,其中输出显示在Visual Studio的输出窗口中。这是我不
下面是一个概念性示例,我在一个窗口窗体项目中使用Console.WriteLine,其中输出显示在Visual Studio的输出窗口中。这是我不久前写的一篇文章中的一段,改编后在这里提供帮助 一个选中列表框,一个按钮
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim dt As New DataTable
dt.Columns.Add(New DataColumn With {.ColumnName = "Identifier",
.DataType = GetType(Int32),
.AutoIncrement = True,
.AutoIncrementStep = 100,
.AutoIncrementSeed = 100})
dt.Columns.Add(New DataColumn With {.ColumnName = "ItemName",
.DataType = GetType(String)})
dt.Columns.Add(New DataColumn With {.ColumnName = "Cost",
.DataType = GetType(Decimal)})
dt.Columns.Add(New DataColumn With {.ColumnName = "ExtraData",
.DataType = GetType(String)})
dt.Rows.Add(New Object() {Nothing, "One", 10.99D, "Extra 1"})
dt.Rows.Add(New Object() {Nothing, "Two", 7D, "Extra 2"})
dt.Rows.Add(New Object() {Nothing, "Three", 5.99D, "Extra 3"})
dt.Rows.Add(New Object() {Nothing, "Four", 1.34D, "Extra 4"})
dt.Rows.Add(New Object() {Nothing, "Five", 45.65D, "Extra 5"})
clbCheckedListBox.DataSource = dt
clbCheckedListBox.DisplayMember = "ItemName"
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If clbCheckedListBox.CheckedItems.Count > 0 Then
For Each drv As DataRowView In clbCheckedListBox.CheckedItems
Console.WriteLine("{0} - {1}", drv.Row.Field(Of String)("ItemName"), drv.Row.Field(Of Decimal)("Cost"))
Next
Dim total As Decimal = clbCheckedListBox.CheckedItems.Cast(Of DataRowView).Select(Function(view) view.Row.Field(Of Decimal)("Cost")).Sum
Console.WriteLine(total)
End If
End Sub
End Class
CheckedListBox不是一个集合类,它只足以显示集合的内容。将数据与视图分开,声明一个(某物)变量列表。其中,某个类至少选择了Boolean和Price作为十进制属性以及ToString()重写。现在它很简单。