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.
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.