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 :

Checkedlistbox et arborescences - Décocher les enfants


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2014
    Messages : 14
    Par défaut Checkedlistbox et arborescences - Décocher les enfants
    Bonjour,

    j'ai réalisé un petit programme de Backup qui fait plutôt bien son job pour le moment. (Sélection du dossier a backup, on liste les dossiers a l'intérieur et on les rajoutes a la checkedlistbox, voir ci dessous)
    Nom : checkedlistbox.png
Affichages : 202
Taille : 348,4 Ko

    J'aimerai rajouter un petit plus qui est :
    - Si on décoche (ou coche) un dossier avec des sous dossiers, décocher l'ensemble des sous dossiers
    J'ai pensé a une démarche que j'essai de mettre en place, mais rien n'y fait, .

    Je m'explique, j'ai pensé procéder de la manière suivante, mais impossible, je n'arrive pas a la mettre en forme, je tourne en ronds (d'ou m'a venu d'ailleurs ^^) :

    - Je récupère le string de la ligne que je viens de décocher (ex :" C:\MonBackup\a\"
    - Je retire les espaces du début avec un Trim & je compte le nombre de caractère de mon string (15 ici)
    - Je récupère l'ensemble des strings de mon tableau, supprime les espaces du début et garde uniquement les 15 premiers caractères
    - Je compare du coup le string de ma ligne décocher a l'ensembles des strings et je décoche ceux qui match.

    Si quelqu'un pourrait m'aiguiller ^^
    Merci d'avance pour vos réponses.

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Par défaut
    Comment sont générés les éléments enfant?

  3. #3
    Membre Expert
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Par défaut
    Bonjour,
    Pourquoi ne pas utiliser un vrai Treeview ?

  4. #4
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2014
    Messages : 14
    Par défaut
    @ZenZiTone
    C'est de la bidouille ^^
    Quand je passe a un sous dossier, je rajoute automatiquement 2 espaces avant le string
    Donc c'est visuel principalement.

    @ebastien
    Bah, j'ai pas réussi en m'en dépatouiller donc j'ai trouvé une autre solution. Je ne suis pas contre une explication pousser, sachant que la docs... bah pas trouvé spécialement claire. Apres si on me propose un code tout fait (concernant le tree view) si je le comprends pas, je ne pense pas l'utiliser (je trouve inutile d'utiliser un code ci je ne comprends pas ce dernier, avis perso bien sur)

    Actuellement ce que je fais c'est :

    1. Sélection du dossier a backup
    2. Création de l’arborescence (dossier uniquement)
    3. On décoche les lignes que l'on ne souhaite pas save.
    4. On save le tous dans un XML


    Si déjà un dossier a backup a été sélectionné, alors :

    1. Je prends mon XML
    2. Je crée les lignes grace au XML


    Merci d'avance pour votre retour
    Fabien

  5. #5
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Par défaut
    Citation Envoyé par kiuraaaa Voir le message
    @ebastien
    Bah, j'ai pas réussi en m'en dépatouiller donc j'ai trouvé une autre solution. Je ne suis pas contre une explication pousser, sachant que la docs... bah pas trouvé spécialement claire.
    L'exemple me semble plutôt simple et claire. Tu as même une propriété UseCheckboxes afficher les Checkboxes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ' Populates a TreeView control with example nodes. 
    Private Sub InitializeTreeView()
        treeView1.BeginUpdate()
        treeView1.Nodes.Add("Parent")
        treeView1.Nodes(0).Nodes.Add("Child 1")
        treeView1.Nodes(0).Nodes.Add("Child 2")
        treeView1.Nodes(0).Nodes(1).Nodes.Add("Grandchild")
        treeView1.Nodes(0).Nodes(1).Nodes(0).Nodes.Add("Great Grandchild")
        treeView1.EndUpdate()
    End Sub

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Par défaut
    Pour mettre un dossier et ses sous-dossiers dans un treeview, on utilise généralement le recursif, à condition que l'arborescence ne soit pas trop profonde.
    Ecrit rapidement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
            private void AddDirectory(TreeNode Node, String Dir)
            {
                String[] subDirs = Directory.GetDirectories(Dir);
                foreach (var subdir in subDirs)
                {
                    TreeNode SubNode = Node.Nodes.Add(subdir);
                    AddDirectory(SubNode, subdir);
                }
            }
    et pour l'appel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                TreeNode RootNode = treeView1.Nodes.Add(@"c:\temp");
                AddDirectory(RootNode, @"c:\temp");
    Désolé, c'est du C# et je viens de voir que nous sommes sur un forum VB.NET mais la conversion est simple.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    perso je fais comme ça!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            Me.TreeView1.Nodes.Clear()
            Me.TreeView1.Nodes.Add("<Champ1>[ValueChamp1]</Chmap1>", "toto")
            Me.TreeView1.Nodes.Add("<Champ2>[ValueChamp1]</Chmap2>", "titi")
            Me.TreeView1.Nodes("<Champ1>[ValueChamp1]</Chmap1>").Nodes.Add("<SChamp2>[sValueChamp1]</SChmap2>", "TOTO2")
            Me.TreeView1.Nodes("<Champ2>[ValueChamp1]</Chmap2>").Nodes.Add("<SChamp2>[sValueChamp2]</SChmap2>", "TITI2")
        End Sub
    Nom : Sans titre.png
Affichages : 151
Taille : 8,1 Ko

  8. #8
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2014
    Messages : 14
    Par défaut
    Bah j'ai utilisé DeserializeTreeView & SerializeTreeView pour enregistre et charger la TreeView a l'aide d'un xml.
    Comme dit un peu plus haut, la je bloque (pas encore regardé en détails) sur :

    1. Lis le fichier XML
    2. Pour chaque node je veux que tu fasses
    3. Si checked = true alors tu me retourne la valeur de text (que je puisse réalisé une copie avec le lien d'acces)
    4. Si checked = false alors tu ignores

  9. #9
    Invité
    Invité(e)
    Par défaut
    Le xml ce trouve dans le nom du nœud quand tu en cheque un tu cheque son xml non?

  10. #10
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2014
    Messages : 14
    Par défaut
    euh... pas compris :s
    Désolé ^^

  11. #11
    Invité
    Invité(e)
    Par défaut
    Par exemple j'ai un fichier xml. Je nome les nœuds comme le les données du xml et j'affiche dans la valeur du nœud.

    Ainsi quand je coche ou décoche un nœud intercepte l'évènement click et je sais sur la ou les branche ou il faut intervenir!

    Par exemple.j'ai des câblage électrique qui peuvent avoir 300 fils.

    Si je décoche un câblage je décoche ses 300 fils.

    Si je décoche une section d'un câblage je décoche tous les fils de la section peut importe la couleur!

  12. #12
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2014
    Messages : 14
    Par défaut
    l'histoire de coche / décoche j'ai réussi a le gérer (ainsi que décocher les enfants)
    La je bloque sur la récupération de mes attributs de mon fichier XML.
    En gros, j'ai mon arborescence, je coche & decoche ce que je veux / veux pas.
    Ensuite je cliquer sur un bouton afin d'enregistrer mon XML (voir si dessous ^^)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?xml version="1.0" encoding="utf-8"?>
    <TreeView>
    <node text="C:\MonBackup" imageindex="-1" checked="True">
    <node text="C:\MonBackup\a" imageindex="-1" checked="True">
    <node text="C:\MonBackup\a\d" imageindex="-1" checked="True">
    <node text="C:\MonBackup\a\d\dfd" imageindex="-1" checked="True" />
    <node text="C:\MonBackup\a\d\dfd - Copie" imageindex="-1" checked="True" />
    <node text="C:\MonBackup\a\d\dfd - Copie (2)" imageindex="-1" checked="True" />
    <node text="C:\MonBackup\a\d\dfd - Copie (3)" imageindex="-1" checked="True" />
    </node><node text="C:\MonBackup\a\e" imageindex="-1" checked="False" />
    <node text="C:\MonBackup\a\f" imageindex="-1" checked="False" />
    </node><node text="C:\MonBackup\b" imageindex="-1" checked="False" />
    <node text="C:\MonBackup\c" imageindex="-1" checked="True">
    <node text="C:\MonBackup\c\Nouveau dossier" imageindex="-1" checked="True" />
    </node>
    </node>
    </TreeView>
    Je recherche donc un petit bout de code qui me permettra de parcourir mon xml, et récupérer la valeur du "text" quand checked = True

    Edit : Je passe en résolu car ma question ne corresponds plus au sujet.

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

Discussions similaires

  1. Recuperation Arborescence
    Par ramseb dans le forum HyperFileSQL
    Réponses: 6
    Dernier message: 16/06/2003, 10h52
  2. controle d'arborescence
    Par billyboy dans le forum Windows
    Réponses: 4
    Dernier message: 13/06/2003, 22h19
  3. [VB6] parcourir une arborescence de repertoire
    Par pecheur dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 30/04/2003, 18h33
  4. créer une arborescence windows sous forme d'arbre java
    Par chupachoc dans le forum Composants
    Réponses: 3
    Dernier message: 01/10/2002, 17h48
  5. arbre de parcour d'arborescence windows
    Par chupachoc dans le forum Composants
    Réponses: 7
    Dernier message: 09/09/2002, 09h09

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