Salve ho un problema...

voglio aggiungere in un controllo TreeView la sequenza delle cartelle e sotto cartelle a partire da un percorso. Ho provato con il seguente codice:

codice:
    Function addNode(ByVal nodo As Object, ByVal etichetta As String, ByVal testo As String) As TreeNode
        Dim nodes As TreeNode = nodo.Nodes.Add(etichetta, testo)
        Return nodes
    End Function

    Function removeNode(ByVal nodo As Object, ByVal etichettaPadre As String) As TreeNode
        Dim nodes As TreeNode = nodo.Nodes.RemoveByKey(etichettaPadre)
        Return nodes
    End Function

    Sub seqNode(ByVal padre As String, ByVal nodo As Object, ByVal percorso As String)
        Dim nomeNodo, etichetta, etichettaPadre As String
        Dim p As Integer

        etichettaPadre = padre.Replace(" ", "")

        For Each s As String In My.Computer.FileSystem.GetDirectories(percorso)
            p = s.LastIndexOf("\")
            nomeNodo = s.Substring(p + 1)
            etichetta = nomeNodo.Replace(" ", "")

            nodo = addNode(nodo, etichetta, nomeNodo)
            seqNode(nomeNodo, nodo, s)
        Next
        nodo = removeNode(nodo, etichettaPadre)
    End Sub
il problema è che la funzione nodo.Nodes.Add() restituisce il nodo che è stato appena aggiunto con tutto l'albero ad esso collegato, mentre la funzione nodo.Nodes.RemoveByKey() non ritorna a niente

avete qualche idea di come possa retrocedere nella sequenza di nodi??