我将所有已检查的项目存储在一个字符串中,这对我来说非常有效但我想将所有已检查的项目存储在一个带有其名称的数组中。
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
请帮忙!
答案 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
下面:
ChkListForPrint.Items.IndexOf(ChkListForPrint.CheckedItems(i))
将获得检查项目的索引。
ChkListForPrint.GetItemText(ChkListForPrint.CheckedItems(i))
会
显示项目的文本。
因此会产生如下输出:(假设列表中有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