[vb.net] explorateur de dossiers - tree view

Contenu du snippet

Ce petit bout de code vous permet de lister les dossiers dans une treeview, mais à la façon de l'explorateur windows.

Source / Exemple :


Public Class Form1

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        ' AJOUT DU DISQUE C AVEC COMME TAG
        TreeView1.Nodes.Add("C:/").Tag = "C:/"
    End Sub

    Private Sub listerDossier(ByVal DossierPath As String)
        ' SEPARATION EN PLUSIEURS PARTIES DU TAG VIA LE CARACTERE $
        Dim str() As String = DossierPath.Split("$")

        ' SI LA DERNIERE PARTIE NE CONTIENT PAS LE CHIFFRE 1 (ainsi le dossier ne se liste pas plusieurs fois)
        If Not str(str.Length - 1).ToString = "1" Then
            Dim liste As Collections.ObjectModel.ReadOnlyCollection(Of String)

            ' ON RECUPERE LES DOSSIERS CONTENUS DANS CELUI SPECIFIE
            liste = My.Computer.FileSystem.GetDirectories(DossierPath)

            For Each path In liste
                Dim args() As String = path.Split("\")
                ' AJOUT D'UN NOEUD CORESPONDANT A UN DES DOSSIER LISTE AVEC COMME TAG SON CHEMIN D'ACCES
                TreeView1.SelectedNode.Nodes.Add(args(args.Length - 1)).Tag = path
                ' AJOUT DU CHIFFRE 1 A LA FIN DU TAG
                TreeView1.SelectedNode.Tag &= "$1"
            Next
        End If
    End Sub

    Private Sub TreeView1_AfterSelect(sender As System.Object, e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect
        listerDossier(TreeView1.SelectedNode.Tag)
        ' N'AGRANDI PAS LE NOEUD SELECTIONNE SI IL L'EST DEJA
        If Not TreeView1.SelectedNode.IsExpanded Then
            TreeView1.SelectedNode.Expand()
        End If
    End Sub
End Class

Conclusion :


Bref, ce code est vraiment très simple à comprendre, je l'ai quand même commenté au maximum.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.