Newsgroup: it.comp.lang.visual-basic
Titolo: Da ListView a TextBox

Ho una ListView, (LV) vorrei che con DblClick i due campi (IDCliente e
CognomeContatto) venissero inseriti un due TextBox di un'altra form
(frmSelezionePreliminare).
Per ora sono riuscito con....
Private Sub LV_DblClick()
        frmSelezionePreliminare.txtFields(0).Text = LV.SelectedItem
'Funziona
        'frmSelezionePreliminare.txtFields(4).Text =
LV.ListItems.Add.ListSubItems(2) ' Non funziona
        Unload Me
End Sub
....a far riempire la prima TextBox, ma nulla da fare per la seconda, quella
del CognomeContatto
Avreste qualche suggerimento?
Dove sbaglio?
Grazie
Per spiegarmi meglio:
'Questo filtra tabella e visualizza tutti i records
Private Sub cmdTutti_Click(Index As Integer)
Dim rstDati As ADODB.Recordset
Dim LI As ListItem
    LV.Visible = True
    LV.ListItems.Clear
    Set rstDati = Nothing
    Set rstDati = Gestore_Query_Selezione(FILTRA_CLI, Text1(0).Text, _
                                          Text1(1).Text, Text1(2).Text,
Text1(3).Text, _
                                          Text1(4).Text, Text1(5).Text,
Text1(6).Text, _
                                          Text1(7).Text, Text1(8).Text)
    If rstDati.RecordCount = 0 Then
        MousePointer = vbDefault
        MsgBox "Nessun Cliente presente con questi filtri!", vbInformation
        Exit Sub
    End If
    With rstDati
        'carica la ListView
        .MoveFirst
        Do While Not rstDati.EOF
            'Set LI = LV.ListItems.Add(, , .Fields("IDCliente").Value)
            Set LI = LV.ListItems.Add(, , .Fields("NomeSocietą").Value)
            'LI.SubItems(1) =
Verifica_Campo_Null(.Fields("NomeSocietą").Value)
            LI.SubItems(1) =
Verifica_Campo_Null(.Fields("CognomeContatto").Value)
            LI.SubItems(2) = Verifica_Campo_Null(.Fields("PIva").Value)
            LI.SubItems(3) =
Verifica_Campo_Null(.Fields("IndirizzoFatturazione").Value)
            LI.SubItems(4) = Verifica_Campo_Null(.Fields("Cittą").Value)
            LI.SubItems(5) = Verifica_Campo_Null(.Fields("Paese").Value)
            LI.SubItems(6) =
Verifica_Campo_Null(.Fields("StatoOProvincia").Value)
            LI.SubItems(7) = Verifica_Campo_Null(.Fields("Note").Value)
            rstDati.MoveNext
        Loop
    End With
    Set rstDati = Nothing
End Sub

 LV.ListItems.Add.ListSubItems(2) ' Non funziona
Leggi bene quello che hai scritto: stai facendo riferimento ai ListSubitems
di un oggetto ListItem aggiunto "al volo" con la stessa istruzione .Add...
ovviamente non esiste l'elemento 2.
Come per la riga che funziona, devi semplicemente fare riferimento ai
ListItems di SelectedItem...
Ciao
--
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown


Si hai ragione ma vado per tentativi...non ho idea di come richimarlo!!

 Si hai ragione ma vado per tentativi...non ho idea di come richimarlo!!
Male... non si va per tentativi, si legge la guida!
Nal caso particolare, sai anche come fare, visto che hai fatto ripetutamente
nel tuo codice cose analoghe
LV.SelectedItem restituisce un oggetto ListItem, esattamente come il metodo
LV.ListItems.Add; nella suddetta guida si vede che gli oggetti di tipo
ListItem, tra le altre, hanno le proprieta' SubItems e ListSubItems che
rappresentano tutte le colonne aggiuntive quando la lista e' in modalita'
Report.
La differenza tra i due e' che il primo e' un semplice array di stringhe,
mentre il secondo e' una collection di oggetti ListSubItem dove, oltre alla
property Text (equivalente al contenuto dell'array appena detto) ci sono
altre proprieta' aggiuntive.
Tornando al tuo codice, si vede che l'istruzione
frmSelezionePreliminare.txtFields(0).Text = LV.SelectedItem
funziona, dato che viene referenziato correttamente l'oggetto attualmente
selezionato e di questo viene letta la proprieta' predefinita (cioe' .Text,
che sarebbe meglio esplicitare); per leggere il contenuto delle altre
colonne devi quindi fare riferimento *allo stesso oggetto*, leggendo
semplicemente altre proprieta'... l'istruzione
frmSelezionePreliminare.txtFields(4).Text = LV.ListItems.Add.ListSubItems(2)
deve quindi diventare
frmSelezionePreliminare.txtFields(4).Text = LV.SelectedItem.ListSubItems(2)
anche qui stai in realta' leggendo la property predefinita .Text del secondo
ListSubItem nella collection dei ListSubItems
