Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [VB]treeview

  1. #1
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202

    [VB]treeview

    Ciao a tutti sono nuovamente qui a porvi domande inutili ma che a me fanno impazzire.
    Sono a impazziere con l'oggetto treeview.
    Vi espongo il problema io acquisisco da un file una serie di percorsi

    ES:
    C:\cartella1\
    C:\cartella1\cartella2
    C:\cartella3\
    C:\cartella3\cartella4
    C:\cartella3\cartella4\cartella5

    Spero di aver reso l'idea.
    Allora una volta acquisiste queste directory devo valorizzare l'oggetto treeview con tutti i nodi e sottonodi solo che non riesco a capire come creare ricorsivamente nodi e sottonodi.
    vi scrivo la porzione di codice incriminata ovviamente sbagliata e vi spego cosa esce a me.

    INodoPadre = Len(NodoPadre)
    If myRow(1).Substring(0, INodoPadre) = NodoPadre And String.IsNullOrEmpty(NodoPadre) = False Then
    'Add nodo figlio
    'NodoPadre = myRow(1).ToString
    TreeView.Nodes(IndiceNodo - 1).Nodes.Add(myRow(1).ToString)
    Else
    'Add nuovo nodo padre
    TreeView.Nodes.Add(myRow(1).ToString)
    IndiceNodo += 1
    NodoPadre = myRow(1).ToString
    End If

    Siccome tutte le cartelle e sottocartelle sono contenute in una cartella padre mi viene creato il primo nodo e tutti vengono messi li sotto ma i nodi figli nn vengono creati

    In giro ho visto che la sintassi per creari ulteriori sottonodi è questa
    ' treeView1.Nodes(0).Nodes.Add("Child 1")
    ' treeView1.Nodes(0).Nodes.Add("Child 2")
    ' treeView1.Nodes(0).Nodes(1).Nodes.Add("Grandchild" )
    ' treeView1.Nodes(0).Nodes(1).Nodes(0).Nodes.Add("Gr eat Grandchild")
    pero il nn riesco a capire come posso fare a fare un processo che componga una "istruzione"
    ovvere che ad ogni occorrenza mi aggiunga un .nodes().
    Ora vi lascio le risposte a voi che forse è fatto un po troppa confusione.
    Grazie a tutti del vostre tempo
    Che mestiere difficile.....essere da soli ancora di più

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    PREMESSA: ti ricordo che come da Regolamento devi indicare il TAG della versione del linguaggio usato, ed usare un titolo più descrittivo del problema .
    Ad esempio, un titolo consono al tuo problema potrebbe essere:

    [VB6] Caricare cartelle e file in un TreeView

    Siccome dal codice mi pare VB 6.0 ti rispondo per questa versione.

    Stessa cosa vale per il codice che deve essere formattato usando il tasto CODE




    Ora veniamo al tuo problema.

    Usando questa tecnica di norma NON si acquiscono MAI tutti i nodi 'figli' in un colpo solo, perchè l'operazione potrebbe risultare lentissima.

    Pensa ad Esplora Risorse ...
    Se caricasse tutto il File System ogni volta che lo apri dovresti andare a prenderti un caffè (anche 2...) e magari tu volevi leggere solo una cartella!

    Per cui:
    1 - prima si caricano solo i nodi radice ed i propri figli.
    2 - al click su un nodo figlio si caricano i relativi figli

    Venendo al tuo problema, sbagli nell'uso del metodo Add perchè esso prevede di indicare diversi parametri tra cui i primi 2 (Relative e Relationship) sono quelli che fanno la differenza e che devi impostare.
    Tu indichi solo il testo:
    TreeView.Nodes(IndiceNodo - 1).Nodes.Add(myRow(1).ToString)
    in questo modo, se non sbaglio, ti elenca tutti i nodi nella radice (root)

    dovresti usare:
    codice:
    TreeView.Nodes.Add([Relative], [Relationship], myRow(1).ToString)
    Ti consiglio di leggerti bene la guida per capire come si usano i parametri del metodo Add.

    P.S. Ricordo che sul libro di F. Balena "Programmare Visual Basic 6.0" trovi un progetto di esempio, se hai il libro.

  3. #3
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    il libro non ce lo ma penso proprio che tu mia abbia dato una chiarissima indicazione provero subito a dargli un'occhio.
    Grazie mille
    Che mestiere difficile.....essere da soli ancora di più

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.