2015-12-22 154 views
-1

基本上我有一個檢查列表框,其中的每個項目都有相應的價格。我如何編寫它,以便如何在CheckedListBox中添加項目vb.net

1)當選擇的項目之一,涉及價格某處存儲在代碼和

2)我怎麼那麼加起來的價格(例如,如果幾個項目已經被選中,我想合計價格並在文本框中顯示總數)。

我上「的Visual Studio Express的臺式機」這樣做所以基本上vb.net

Click here to see the picture of the CheckedListBox

+1

CheckedListBox不是一個集合類,它只是不夠好,以顯示集合的內容。從視圖中分離數據,聲明一個List(Of Something)變量。 Where Something是一個至少具有Selected As Boolean和Price As Decimal屬性以及ToString()重寫的類。現在很簡單。 –

回答

0

這裏是一個概念上的例子,我在一個窗口形式的項目中使用Console.WriteLine其中輸出顯示在Visual Studio的輸出窗口中。採取從following article我寫了一段時間,並適應在這裏協助。

一個CheckedListBox,一個Button

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 
相關問題