Vb6 列表视图双击事件

Vb6 列表视图双击事件,vb6,Vb6,使用VB6 列表视图 ID Name 001 Raja 002 Ramu 003 Sajee .. … 代码 上述代码未在文本框中显示值 如何在文本框中显示列表视图行值 需要VB6代码帮助我手头没有VB6,而且我已经有一段时间没有使用它了,但是如果内存正常: ListView1.SelectedItem将返回一个ListViewItem,该ListViewItem提供一个文本属性,以及一个子项属性,该属性允许您以数组的形式访问相关列。ListView SelectedItem属性不会返回L

使用VB6

列表视图

ID Name 

001 Raja
002 Ramu
003 Sajee
..
…
代码

上述代码未在文本框中显示值

如何在文本框中显示列表视图行值


需要VB6代码帮助

我手头没有VB6,而且我已经有一段时间没有使用它了,但是如果内存正常:


ListView1.SelectedItem
将返回一个ListViewItem,该ListViewItem提供一个
文本
属性,以及一个
子项
属性,该属性允许您以数组的形式访问相关列。

ListView SelectedItem属性不会返回ListView上选择的项的集合,因此,您无法显式获取第一个选定项、第二个选定项等。您需要在ListView中遍历所有ListItems,并检查是否选中了每个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循环中以何种顺序迭代列表项。在我的代码中,您可能希望分配给Textbox2.Text的可能是分配给Textbox1.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
' 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