使用VB6
列表视图
ID Name
001 Raja
002 Ramu
003 Sajee
..
…
代码
Private Sub listview1_DblClick()
If Not (listview1.SelectedItem Is Nothing) Then
Textbox1.text = listview1.selectedItem(0)
Textbox2.text = listview1.SelectedItem(1)
End If
End Sub
以上代码未在文本框中显示值
如何在文本框中显示列表视图行值。
需要VB6代码帮助
答案 0 :(得分:2)
ListView SelectedItem属性不返回在ListView上选择的项目集合,因此您无法显式获取第一个选定项目,第二个选定项目等。您需要遍历ListView中的所有ListItems并检查每个是否被选中。如果是,做你想做的事。
我在示例代码中看到的一个问题是您正在使用ListView DblClick事件。我可能错了,但看起来每当它触发时,只能选择一个ListView项(触发事件的那个)。解决方案是将代码放入新过程中。这是一个应该有效的方法:
Private Sub GetSelectedItems()
' Make sure exactly two items are selected on our ListView.
If (CheckListViewSelectedItemCount(listview1, 2)) Then
Dim blnFoundFirstItem As Boolean
blnFoundFirstItem = False
Dim i As Integer
' Find out which items are selected.
For i = 1 To listview1.ListItems.Count
If (listview1.ListItems(i).Selected) Then
' Assign the Text of the 'first' selected item to Textbox1.Text.
If (Not blnFoundFirstItem) Then
Textbox1.Text = listview1.ListItems(i).Text
blnFoundFirstItem = True
' Assign the Text of the 'second' selected item to Textbox2.Text.
Else
Textbox2.Text = listview1.ListItems(i).Text
End If
End If
Next i
Else
MsgBox "You need to select two items."
End If
End Sub
我不确定在我的For循环中迭代ListItems的顺序。可能会在我的代码中分配给Textbox1.Text的内容可能要分配给Textbox2.Text。
在ListView上选择至少两个项目所需的代码。我不知道VB6是否有办法返回所选项目的数量,所以我写了一个小函数来做到这一点:
' Return True if the passed ListView control has a number of selected items that's equal to the intExpectedItemCount parameter.
Private Function CheckListViewSelectedItemCount(listView As listView, intExpectedItemCount As Integer) As Boolean
Dim intSelectedItemCount As Integer
intSelectedItemCount = 0
Dim i As Integer
For i = 1 To listView.ListItems.Count
If (listView.ListItems(i).Selected) Then
intSelectedItemCount = intSelectedItemCount + 1
End If
Next i
CheckListViewSelectedItemCount = (intSelectedItemCount = intExpectedItemCount)
End Function
答案 1 :(得分:0)
我手边没有vb6,因为我使用它已经有一段时间了,但如果内存对我有用:
ListView1.SelectedItem
将返回一个ListViewItem,它为您提供Text
属性以及SubItems
属性,使您可以作为数组访问相关列。