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 :

Remonter à la racine d'un treeview par code [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 32
    Par défaut Remonter à la racine d'un treeview par code
    Bonjour, je tourne en rond depuis plusieurs jours et je n'ai pas trouvé la solution à mon problème
    j'ai un tableau qui contient des chaines de caractères séparées par des points. Chaque point est un noeud de mon treeview.
    j'arrive à ajouter les noeuds dans le treeview, mais le problème c'est que je n'arrive pas après avoir ajouter la premiere chaine de mon tableau de re selectionner la racine de mon treeview pour ajouter la seconde chaine.
    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
    Dim _Alias As String = "a.b.c"
     
        Private Sub Add_Value()
            Try
                Dim Ret() As String = Split(_Alias, ".")
                If Ret IsNot Nothing Then
     
                    For i As Integer = 0 To Ret.Length - 1
                        Dim nod As TreeNode = New TreeNode
                        nod.Name = Ret(i)
                        nod.Text = Ret(i)
                        nod.Tag = Ret(i)
                        TV2.SelectedNode.Nodes.Add(nod)
                        TV2.SelectedNode = nod
                    Next
                    Dim NodeParent As New TreeNode
                    TV2.SelectedNode.BackColor = Color.Red
                End If
            Catch ex As Exception
                'Gestion des erreurs
                Debug.Print(ex.Message)
            End Try
        End Sub
    Ci dessous le résultat

    Nom : code error.png
Affichages : 286
Taille : 1,4 Ko

    Et voilà ce que je recherche
    Nom : trv.png
Affichages : 366
Taille : 1,6 Ko
    Merci d'avance
    Olivier

  2. #2
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonsoir,

    Ton schema de nœuds (screenshot 2) n'est pas cohérent !

    Racine par définition est ton noeud racine mais "a" ne peut absolument pas se trouver à 3 endroits sur le même niveau ce qui revient à dire qu'il est un seul et unique noeud duquel "b" et "c" appartiennent !

    Il faut revoir la façon dont tu comptes construire ton arbre (en toute logique).

    Si tu veux pouvoir ajouter des noeuds enfants (ex : d, e, f) à ton noeud "a" alors il faut le référencer en dehors de ta boucle pour travailler ulterieurement avec.

    A+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 32
    Par défaut
    Bonjour,
    merci pour la réponse, je comprend que cela choque, mais c'est pour des raisons de facilité dans mon code. je veux juste pouvoir faire la même chose via mon code quand cliquant sur "Racine"
    si j'appuie sur le bouton Add j'optiens l'image 1, si je clic sur "Racine", puis Add j'optiens l'image 2 ce que je veux faire.
    mon problème c'est de trouver ce code qui après la fin du Add, re sélectionne la Racine.
    Merci.

  4. #4
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    1- Comme je l'ai évoqué dans mon dernier message il faut qu tu déclares une variable au niveau de ta classe (ex : Form1) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Class Form1
     
        Private m_parentNode As TreeNode = nothing
     
    End Class
    2- Tu ajoutes ton noeud nommé racine dans ton constructeur de classe (Form1 toujours) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        Sub New()
            ' Cet appel est requis par le concepteur.
     
            InitializeComponent()
     
            ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
     
            m_parentNode = TreeView1.Nodes.Add("Racine")
        End Sub
    3- Tu as maintenant une référence à ton noeud racine (m_parentNode ) pour pouvoir l'utiliser ailleurs.

    NB0 : Tu pourrais tout aussi bien ajouter un argument (ex : "ParentNode As Treenode" à ta méthode "AddValue" ainsi tu pourrais définir quel sera le noeud parent des noeuds que tu veux ajouter mais il faudra remplacer la ligne dans le corps de ta méthode : TV2.SelectedNode.Nodes.Add(nod) !)

    NB1 : Pour l'ajout dynamique de noeud c'est bien plus complexe et si tu n'as pas un soupçon de notions Objet avec la mise en place d'instances des noeuds ..etc... tu risques fort d'être largué.

    A+

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 32
    Par défaut
    Merci pour la réponse, c'était bien ça mon problème. un problème de déclaration de la mémoire. je la faisait dans ma boucle
    Encore merci
    @+

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

Discussions similaires

  1. Accès aux scrollbars d'un treeview en WPF par code
    Par Cyrilh7 dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 10/01/2012, 13h45
  2. Création d'un treeview par code VBA
    Par JiBen44 dans le forum VBA Word
    Réponses: 0
    Dernier message: 29/11/2011, 00h13
  3. Selectionner un node d'un treeview par le code
    Par beldi83 dans le forum VB.NET
    Réponses: 4
    Dernier message: 22/03/2010, 16h19
  4. Selectionner une node d'un treeview par le code
    Par beldi83 dans le forum VB.NET
    Réponses: 2
    Dernier message: 16/03/2010, 09h38
  5. [VB.NET] Selectionner un noeud du treeview par le code
    Par Elbarto dans le forum Windows Forms
    Réponses: 7
    Dernier message: 23/02/2006, 10h49

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