2015-12-22 18 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). Где что-то является классом, который по крайней мере имеет свойства Selected As Boolean и Price As Decimal и переопределение ToString(). Теперь это просто. –

ответ

0

Вот концептуальный пример, где я использую Console.WriteLine в виде окна проекта, в котором вывод отображается в окне вывода Visual Studio. Взято с following article Я написал некоторое время назад и адаптировался, чтобы помочь здесь.

Один CheckedListBox, одна кнопка

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 

 Смежные вопросы

  • Нет связанных вопросов^_^