将数据从ListView获取到数组中

时间:2010-04-21 18:30:27

标签: vb.net listview arrays

我的表单上有一个ListView控件,在详细模式下设置如下:

alt text http://i40.tinypic.com/ehbti8.jpg

我想做的是,当用户按下Delete booking按钮时,获取数据单元格的所有值。

所以使用上面的例子,我的数组将填充这些数据:

values(0) = "asd"
values(1) = "BS1"
values(2) = "asd"
values(3) = "21/04/2010"
values(4) = "2"

到目前为止,这是我的代码:

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    Dim items As ListView.SelectedListViewItemCollection = _
    Me.ManageList.SelectedItems
    Dim item As ListViewItem
    Dim values(0 To 4) As String
    Dim i As Integer = 0
    For Each item In items
        values(i) = item.SubItems(i).Text
        i = i + 1
    Next
End Sub

但只有values(0)填充了选择的第一个数据单元格(在本例中为“asd”),其余的数组条目为空白。我已经用断点确认了这一点,并自己检查了数组条目。

我真的迷失了,现在已经尝试了大约一个小时。任何帮助将不胜感激,谢谢:)

另请注意,一次只能选择一行。感谢。

3 个答案:

答案 0 :(得分:1)

Costin对于需要迭代这些子项是正确的,如果你确定只有一个选择迭代这些项只是混淆了事情,我会把它写成:

  Dim values As New List(Of String)
  If ManageList.SelectedItems.Count > 0 Then
     For Each item As ListViewItem.ListViewSubItem In ManageList.SelectedItems(0).SubItems
        values.Add(item.Text)
     Next
  End If

答案 1 :(得分:0)

我不知道你如何填充列表,但对我来说,你似乎需要迭代item.Subitems来获取值。我不知道VB,但我认为你可以使用类似的东西:

For i As Integer = 0 To item.SubItems.Count
   values(i) = item.SubItems(i).Text

答案 2 :(得分:0)

试试这个..

    Dim values() As String

    If items.Count = 1 Then
        subitems = items(0).SubItems
        ReDim values(0 To subitems.Count - 1)
        For i As Integer = 0 To subitems.Count
            values(i) = subitems(i).Text
        Next
    Else
        Throw New Exception("boom")
    End If