Как добавить значения ListView в TextBox / ComboBox? VB6 - PullRequest
1 голос
/ 28 января 2020

У меня есть этот интерфейс:

Ввод данных:

Они загружены в ListView:

Я хочу, чтобы при двойном щелчке на элементе, загруженном из списка, он совпадал со значениями, с которыми он был загружен. То есть я дважды щелкаю по элементу списка, он должен загрузить значения ComboBox, TextBox, CheckBox, с которыми он был добавлен в Listview. Это было бы так, чтобы в случае, если пользователь неправильно загрузил часть данных, он может редактировать ее, дважды щелкнув.

Я думал об этом, но это не сработало:

Private Sub List_Contactos_DblClick()

Dim i As Integer
Dim IntPrincipal As Integer
Dim IntVinculo As Integer
Dim IntTipo As Integer

If MebPreFijo.Text = "" And txttel.Text = "" Then
        'For i = 1 To List_Contactos.ListItems.Count

        'CmbTipoTel
        If List_Contactos.ListItems(i).SubItems(1) = "Fijo" Then
            IntTipo = 1
        Else
            IntTipo = 2
        End If
        CmbTipoTel.Text = List_Contactos.ListItems(i).SubItems(1)

        'MebPreFijo
        MebPreFijo.Text = List_Contactos.ListItems(i).SubItems(2)

        'txttel
        txttel.Text = List_Contactos.ListItems(i).SubItems(3)

        'CheckPrincipal
        If List_Contactos.ListItems(i).SubItems(4) = "SI" Then
            IntPrincipal = 1
        Else
            IntPrincipal = 0
        End If
        ChPrincipal.value = IntPrincipal

        'ComboTipoVinculo
        If List_Contactos.ListItems(i).SubItems(5) = "" Then
            IntVinculo = 0
        Else
            Rs.Open "select tv_id from dbo.Tipo_Vinculo where tv_descripcion='" & List_Contactos.ListItems(i).SubItems(5) & "'", Cn, adOpenKeyset, adLockReadOnly
            IntVinculo = Rs!TV_Id
            Rs.Close
        End If
        ChVinculo.value = IntVinculo

        'Limpiar ese item
        List_Contactos.ListItems.Remove List_Contactos.SelectedItem.Index

    'Next i

    Else
    MsgBox "Tiene datos que se pueden perder. Por favor, presione añadir."

End If

End Sub

Предложения? Потому что, когда я нажимаю на элемент, я вижу следующую ошибку:

Index out of bounds Run-time error "35600"

1 Ответ

0 голосов
/ 28 января 2020

Индекс i не будет ссылаться на выбранный элемент в просмотре списка. Вместо этого попробуйте SelectedItem.

Например:

If List_Contactos.SelectedItem.SubItems(1) = "Fijo" Then
...