我的表单上有一个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”),其余的数组条目为空白。我已经用断点确认了这一点,并自己检查了数组条目。
我真的迷失了,现在已经尝试了大约一个小时。任何帮助将不胜感激,谢谢:)
另请注意,一次只能选择一行。感谢。
答案 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