IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Sub récursif - double affichage


Sujet :

VB.NET

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté Avatar de Faladin
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2007
    Messages : 333
    Par défaut Sub récursif - double affichage
    Bon vendredi à tous!

    J'ai cette sub récursive qui cherche tous les sous-dossiers à partir d'une racine passée en paramètre et affiche tous les sous-dossiers dans un TreeView:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Public Sub LoadSubTree(ByRef noeud As TreeNode, ByVal chemin As String)
            For Each dossier In Directory.GetDirectories(chemin)
                noeud.Nodes.Add(Replace(dossier, chemin & "\", ""))
            Next
            For Each tn As TreeNode In noeud.Nodes
                LoadSubTree(tn, tn.FullPath)
            Next
        End Sub
    À l'aide d'un bouton, je lances la routine comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        Public Sub LoadNewTree()
            Dim FolderBrowserDialog1 As New FolderBrowserDialog
            FolderBrowserDialog1.ShowNewFolderButton = False
            FolderBrowserDialog1.ShowDialog()
            If FolderBrowserDialog1.SelectedPath <> "" Then
                'Clear ou Remove donne le même résultat
                'Explo_win.TreeView.Nodes.Clear()
                Explo_win.TreeView.Nodes.RemoveAt(0)
                Explo_win.TreeView.Nodes.Add(FolderBrowserDialog1.SelectedPath)
                LoadSubTree(Explo_win.TreeView.Nodes(0), FolderBrowserDialog1.SelectedPath)
                Explo_win.TreeView.SelectedNode = Explo_win.TreeView.Nodes(0)
            End If
            Explo_win.TreeView.ExpandAll()
        End Sub
    Le problème est qu'à la fin de l'exécution, mon TreeView contient 2 fois la même racine et tout ses sous-dossiers. J'ai beau faire du "step-by-step" mais je ne comprends pas comment il fait pour afficher une 2e fois la racine. De plus, à la fin de l'exécution, j'ai vérifié le TreeView.Nodes.Count et il est égal à 1. Donc le TreeView ne voit qu'un noeud, mais il y en a 2 d'afficher (voir load.jpg)


    J'utilise la même fonction à l'ouverture pour ouvrir le dossier de base, sans problème.
    (voir ouverture.jpg)
    Images attachées Images attachées   

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Double affichage OpenGL dans une meme fenetre
    Par greghass dans le forum OpenGL
    Réponses: 3
    Dernier message: 13/11/2006, 21h57
  2. Réponses: 1
    Dernier message: 13/11/2006, 18h37
  3. [PHP-JS] Pb de double affichage
    Par cell dans le forum Langage
    Réponses: 8
    Dernier message: 23/08/2006, 14h10
  4. [JFrame] double affichage puis x3..
    Par meda dans le forum Agents de placement/Fenêtres
    Réponses: 15
    Dernier message: 20/06/2006, 17h29
  5. [Tableaux] probleme de double affichage
    Par clovis200 dans le forum Langage
    Réponses: 5
    Dernier message: 30/05/2006, 16h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo