如何在vb.net中的CheckedListBox中的数组中存储已检查的项目

时间:2012-11-15 08:11:01

标签: arrays vb.net checkedlistbox

我将所有已检查的项目存储在一个字符串中,这对我来说非常有效但我想将所有已检查的项目存储在一个带有其名称的数组中。

 Dim i As Integer

 Dim ListItems As String

        ListItems = "Checked Items:" & ControlChars.CrLf

        For i = 0 To (ChkListForPrint.Items.Count - 1)
            If ChkListForPrint.GetItemChecked(i) = True Then
                ListItems = ListItems & "Item " & (i + 1).ToString & " = " & ChkListForPrint.Items(i)("Name").ToString & ControlChars.CrLf
            End If
        Next

请帮忙!

2 个答案:

答案 0 :(得分:1)

如果您需要CheckedItems,那么为什么要使用Items呢?我建议使用CheckedItems

我已经修改了你的代码,这样的事情可以帮助你:

Dim collection As New List(Of String)()        ' collection to store check items
Dim ListItems As String = "Checked Items: "    ' A prefix for any item

For i As Integer = 0 To (ChkListForPrint.CheckedItems.Count - 1)  ' iterate on checked items
    collection.Add(ListItems & "Item " & (ChkListForPrint.Items.IndexOf(ChkListForPrint.CheckedItems(i)) + 1).ToString & " = " & ChkListForPrint.GetItemText(ChkListForPrint.CheckedItems(i)).ToString)  ' Add to collection
Next

下面:

  1. ChkListForPrint.Items.IndexOf(ChkListForPrint.CheckedItems(i)) 将获得检查项目的索引。

  2. ChkListForPrint.GetItemText(ChkListForPrint.CheckedItems(i))会 显示项目的文本。

  3. 因此会产生如下输出:(假设列表中有4个项目,其中2和3项被选中)

    Checked Items: Item 2 = Apple
    Checked Items: Item 3 = Banana
    

答案 1 :(得分:0)

这应该这样做。

Dim ListItems as New List(Of String)
For i = 0 To (ChkListForPrint.Items.Count - 1)
    If ChkListForPrint.GetItemChecked(i) = True Then
       ListItems.Add(ChkListForPrint.Items(i)("Name").ToString)
    End If
Next