Просмотр списка Двойной щелчок Событие - PullRequest
0 голосов
/ 22 февраля 2011

Использование 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 ]

2 голосов
/ 23 февраля 2011

Свойство 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

Я не уверен, в каком порядке ListItems итерируются в моем цикле For.Вполне возможно, что то, что будет назначено для 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 голосов
/ 22 февраля 2011

У меня нет vb6 под рукой, и прошло некоторое время с тех пор, как я его использовал, но если память мне не изменяет:

ListView1.SelectedItem вернет вам ListViewItem, который дает вам свойство Text вместе сSubItems свойство, которое дает вам доступ к связанным столбцам в виде массива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...