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 :

Etendre une partie d'un treeview par le code


Sujet :

VB.NET

  1. #1
    Membre averti Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    Septembre 2008
    Messages
    927
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 927
    Points : 312
    Points
    312
    Par défaut Etendre une partie d'un treeview par le code
    Bonjour,

    J'ai un petit souci avec mon treeview. Je le remplis grâce à 3 dicos Mais j'aimerais pouvoir étendre les nœuds pas le code.

    Voici ce que je fait pour remplir le treeview:

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
     
        Private tvParent As TreeNode
        Private tvType As TreeNode
     
     
        Private Sub loadClasses()
     
            Dim line As String
            TreeView1.Nodes.Clear()
     
            If myClasses.ObjDesc.Count > 0 Then
                For Each key As String In myClasses.ObjDesc.Keys
                    tvParent = TreeView1.Nodes.Add(key, key, 0, 0)
                    tvType = tvParent.Nodes.Add("CFG", "CFG", 0, 0)
                    For Each key2 As String In myClasses.ObjDesc(key).Cfg.Keys
                        line = key & " , " & myClasses.ObjDesc(key).Cfg(key2).Name & " , " & _
                            myClasses.ObjDesc(key).Cfg(key2).ExpliciteName & " , " & myClasses.ObjDesc(key).Cfg(key2).Acces & " , " & _
                            CStr(myClasses.ObjDesc(key).Cfg(key2).vbType) & " , " & myClasses.ObjDesc(key).Cfg(key2).Limitation & " , " & _
                            CStr(myClasses.ObjDesc(key).Cfg(key2).Use) & " , " & Format(myClasses.ObjDesc(key).Cfg(key2).UseVersion, "##,#")
                        tvType.Nodes.Add(line, line, 0, 0)
                        tvType.ExpandAll()
                    Next
                    tvType = tvParent.Nodes.Add("DATA", "DATA", 0, 0)
                    For Each key2 In myClasses.ObjDesc(key).Data.Keys
                        line = key2 & " , " & myClasses.ObjDesc(key).Data(key2).Name & " , " & _
                           myClasses.ObjDesc(key).Data(key2).ExpliciteName & " , " & myClasses.ObjDesc(key).Data(key2).Acces & " , " & _
                           CStr(myClasses.ObjDesc(key).Data(key2).vbType) & " , " & myClasses.ObjDesc(key).Data(key2).Limitation & " , " & _
                           CStr(myClasses.ObjDesc(key).Data(key2).Use) & " , " & Format(myClasses.ObjDesc(key).Data(key2).UseVersion, "##,#")
                        tvType.Nodes.Add(line, line, 0, 0)
                        tvType.ExpandAll()
                    Next
                Next
            End If
            TreeView1.Scrollable = True
        End Sub
    Ce treeview à donc 3 niveaux, celui de base (niveau 1) ou j'ai les "key" puis dessous 2 objets appelés CFG et DATA puis sous chaque j'ai plusieurs ligne regroupant plusieurs informations.
    Le niveau 2 et 3 est étendu dés que j'étend manuellement le niveau 1.

    Ce que j'aimerais c'est pouvoir étendre l'un des niveaux 1 par le code et fermé les autres.

    En faite le treeview n'est qu'un visualiseur de mes données, à coté j'ai le détail de l'un des objet que je peux modifier, en ajouter ou supprimer.

    Idéalement il faudrait aussi que la vue se place de façon à voir l’intégralité du nœud étendu puisque j'ai les ascenseurs d'actif "TreeView1.Scrollable = True"

    J'ai essayé avec "TreeView1.SelectedNode" mai je n'arrive pas à lui donner la bonne information.


    A l'inverse il faut que lorsque l'on clique manuellement dans le treeview que je puisse récupérer le texte nœud de base ainsi que CFG ou DATA et la ligne sélectionné du niveau 3.

    Merci

  2. #2
    Membre averti Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    Septembre 2008
    Messages
    927
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 927
    Points : 312
    Points
    312
    Par défaut
    Bon ba je viens de trouver, excusez moi.

    dans le cmbObject_SelectedIndexChanged (un combobox ou j'ai tous mes objets racine)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    For Each nd As TreeNode In TreeView1.Nodes
                    If nd.Text = cmbObject.Text Then
                        nd.ExpandAll()
                    Else
                        nd.Collapse(True)
                    End If
     
                Next
    il me reste à positionner l'affichage correctement et a faire l'inverse, au clic dans le treenode


    [EDIT]

    Pour l'affichage de la sélection:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
                For Each nd As TreeNode In TreeView1.Nodes
                    If nd.Text = cmbObject.Text Then
                        TreeView1.SelectedNode = nd
                        Exit For
                    End If
     
                Next

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2012
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 206
    Points : 455
    Points
    455
    Par défaut
    Pour l'avoir déjà utilisé,

    il faut bien que tu lise les propriétés sur la msdn et que tu fasses la différence entre la classe Treeview et la classe TreeNode

    TreeNode Sur cette page tu devrais regarder
    Parent Noeud précédent voir aussi le fonctionnement de PrevNode et NextNode et la différence avec PrevVisibleNode et NextVisibleNode
    CollapseAll reduire le noeud (et ses enfants selon la surcharge)
    Level niveau du noeud
    FirstNode Lien père à la base de l'arborescence

    TreeView Ici tu auras aussi
    CollapseAll tout reduire
    SelectedNode Noeud à sélectionner

    Je n'ai pas mon projet ou je l'ai utiliser sous la main, je pourrais jeter un oeil ce soir.

  4. #4
    Membre averti Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    Septembre 2008
    Messages
    927
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 927
    Points : 312
    Points
    312
    Par défaut
    Citation Envoyé par chaparo Voir le message
    Pour l'avoir déjà utilisé,

    il faut bien que tu lise les propriétés sur la msdn et que tu fasses la différence entre la classe Treeview et la classe TreeNode

    TreeNode Sur cette page tu devrais regarder
    Parent Noeud précédent voir aussi le fonctionnement de PrevNode et NextNode et la différence avec PrevVisibleNode et NextVisibleNode
    CollapseAll reduire le noeud (et ses enfants selon la surcharge)
    Level niveau du noeud
    FirstNode Lien père à la base de l'arborescence

    TreeView Ici tu auras aussi
    CollapseAll tout reduire
    SelectedNode Noeud à sélectionner

    Je n'ai pas mon projet ou je l'ai utiliser sous la main, je pourrais jeter un oeil ce soir.
    Super merci, je regarde sa.

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/04/2011, 15h36
  2. Remplacer une partie de l'image par 0
    Par code_source dans le forum Images
    Réponses: 2
    Dernier message: 11/01/2011, 17h11
  3. Selectionner une node d'un treeview par le code
    Par beldi83 dans le forum VB.NET
    Réponses: 2
    Dernier message: 16/03/2010, 10h38
  4. calcul d'une partie de volume reconstruit par une méthode de triangulation
    Par foufouta dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 06/05/2008, 22h55
  5. Réponses: 1
    Dernier message: 24/05/2007, 22h20

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