2011-02-22 70 views
0

使用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代碼幫助

回答

2

ListView SelectedItem屬性不會返回在您的ListView上選擇的項目集合,因此您不能顯式獲取第一個選定項目,第二個選定項目等。您將需要循環遍歷所有ListItems ListView並檢查是否每個都被選中。如果是,就做你想做的事。

我在示例代碼中看到的一個問題是您使用的是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 
0

我沒有手頭VB6和它已經有一段時間,因爲我用它,但如果沒記錯的話:

ListView1.SelectedItem將返回一個ListViewItem的它給你Text屬性以及SubItems屬性,使您可以將相關列作爲數組訪問。