Ho realizzato il seguente codice per esplorare un file system.
Funziona correttamente e le sottodirectory si aprono cliccando sulla cartella a sinistra del testo.
Vorrei che l'apertura delle sottodirectory avvenga anche cliccando sul testo del nodo.
Ho provato a vedere le proprietā del Treenode ma non sono riuscito a trovarne nessuna che possa soddisfare la mia esigenza.

codice:
Imports System
Imports System.IO

Partial Class ProgrammazioneStrategica
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not Page.IsPostBack Then
            Dim directory As String = "Programmazione Strategica"
            Dim percorso = Request.PhysicalApplicationPath() & "MenuDinamico\" & directory
            Dim NewNode As TreeNode = New TreeNode(directory)
            TreeView1.Nodes.Add(NewNode)
            ottieniSottoCartelle(percorso, TreeView1.Nodes(0))
            ottieniFiles(percorso, TreeView1.Nodes(0), 0)
        End If
    End Sub

    Public Sub ottieniSottoCartelle(ByVal path As String, ByVal node As TreeNode)
        Dim cartelle() As String = Directory.GetDirectories(path)
        If cartelle.Length <> 0 Then
            ' per ogni sottocartella, aggiungi al TreeView e chiama ricorsivamente te stesso
            Dim cartella As String
            For Each cartella In cartelle
                ' aggiungi il path relativo al TreeView
                Dim cartella_da_inserire As String
                cartella_da_inserire = cartella.Substring(cartella.LastIndexOf("\") + 1)
                Dim NewNode As TreeNode = New TreeNode(Mid(cartella_da_inserire, 4, Len(cartella_da_inserire)))
                node.ChildNodes.Add(NewNode)
                ' trova le sue sottocartelle
                ottieniSottoCartelle(cartella, NewNode)
                ' trova i file
                ottieniFiles(cartella, NewNode, 1)
                ' chiudi il nodo corrente
                NewNode.CollapseAll()
            Next
        End If
    End Sub

    Public Sub ottieniFiles(ByVal path As String, ByVal node As TreeNode, ByVal i As Integer)
        Dim files() As String = Directory.GetFiles(path)
        If files.Length = 0 And node.ChildNodes.Count = 0 Then
            Dim NewNode As TreeNode = New TreeNode("Directory is empty")
            node.ChildNodes.Add(NewNode)
        Else
            Dim file As String
            Dim nome_file As String
            For Each file In files
                ' aggiungi il file al TreeView
                Dim file_da_inserire As String
                file_da_inserire = file.Substring(path.Length + i)
                Dim estensione As String = Mid(file_da_inserire, Len(file_da_inserire) - 2, 3)
                nome_file = Mid(file_da_inserire, 10, Len(file_da_inserire) - 13)
                Dim NewNode As TreeNode = New TreeNode(nome_file)
                NewNode.ImageUrl = "Immagini/doc.gif"
                If (estensione = "txt") Then 'pagina ASP
                    NewNode.Target = "_self"
                    nome_file = nome_file + ".aspx"
                Else
                    NewNode.Target = "_blank" 'documento PDF
                    nome_file = path + "\" + file_da_inserire
                End If
                NewNode.NavigateUrl = "documento.aspx?nome_file=" + nome_file
                node.ChildNodes.Add(NewNode)
            Next
        End If
    End Sub

End Class
Grazie mille.

Luciano