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 :

Selection nodes par clé TreeView ! [Débutant]


Sujet :

VB.NET

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Points : 78
    Points
    78
    Par défaut Selection nodes par clé TreeView !
    Bonjour tous le monde.

    J'ai un problème que je n'arrive pas à résoudre dans ma programmation. J'utilise un TreeView à 3 level. (Level 0, 1 et 2).
    Pour remplir le treeview, j'utilise une routine que j'ai mis en place. Les nodes du level 0 ont une clé égale à "T" & index. Les nodes du level 1 on une clé égale à la clé de leurs parents auquel j'ajoute "L" & index. Puis de même pour les nodes du level3. Vous pouvez voir en image jointe l'exemple de l'arbre.

    Donc quand je sélectionne un nodes avec clic dans le TreeView, je recupère le "name" du node ce qui me donne sa clé (clé qui est unique). Si par exemple je clique sur "Equipe 1" dans mon exemple, j'aurais la clé "T1L0E0". Si je clique sur "L2" dans mon exemple, j'aurais "T0L1".

    Mais une fois que j'ai cette clé est que je la connais. J'aimerais faire un truc comme ....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    toto = me.treeview.nodes(cle).text
    Mais rien ne marche. Auriez-vous une solution ???
    Images attachées Images attachées  

  2. #2
    Membre habitué Avatar de linke
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 119
    Points : 139
    Points
    139
    Par défaut
    salut
    généralement on déclare un event clic ou double clic , ensuite on récupère l'info.....
    envoi un peut de code pour voir ou tu coince

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Points : 78
    Points
    78
    Par défaut
    Pour le moment, je fais des tests sur un truc basique comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub TreeView_championnat_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView_championnat.AfterSelect
     
    me.label1.text = Me.TreeView_championnat.SelectedNode.Name
     
    End Sub
     
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     
    Me.TreeView_championnat.nodes(me.label1.text).BackColor = Color.Black
     
    MsgBox(Me.TreeView_championnat.Nodes(test).text, MsgBoxStyle.Exclamation, "Info")
     
    end sub
    Mais il ne se passe rien ! Pas une erreur rien. Pourtant je récupère bien la Clé de la node sélectionné.
    J'ai vu que lorsque je fais me.treeView_championnat.Nodes(......) On me propose 3 onglets à remplir. Le premier, il n'y a rien, le deuxième est spécifié "Index As intéger", le troisième, "Key as string". Du coup j'ai essayé avec "Me.treeView_championnat.Nodes(,,test).text ... Mais toujours rien.

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Points : 78
    Points
    78
    Par défaut
    Bon ben finalement j'ai trouvé ma réponse tout seul en cherchant un peu à droite et gauche et adaptant.

    J'ai trouvé donc deux méthodes.

    1 - Recherche par la clé de la node.

    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
     
    Dim Cle As String = String.Empty
    Dim b As Boolean = True
     
    Cle = TreeView_championnat.SelectedNode.name
     
    If Cle <> String.Empty Then
         Try
              Dim arr As TreeNode() = Me.TreeView_championnat.Nodes.Find(Cle , b)
     
              For i = 0 To arr.Length - 1
                  Me.TreeView_championnat.SelectedNode = arr(i)
                  Me.TreeView_championnat.SelectedNode.BackColor = Color.Red
              Next i
         Catch
              Msgbox(MsgBox(ex.Message, MsgBoxStyle.Information, "Prog test")
         End Try
            Else
                MessageBox.Show("Pas de clé dans la node sélectionnée", MsgBoxStyle.Information, "Prog test")
    End If
    2 - Recherche par le texte de la node.

    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
     
    Dim texte As String = String.Empty
    Dim b As Boolean = True
     
    texte = TreeView_championnat.SelectedNode.Text
     
    If texte <> String.Empty Then
         Try
             Dim arr As TreeNode() = treeView1.Nodes.Find(texte, b)
             For i = 0 To arr.Length - 1
                        Me.TreeView_championnat.SelectedNode = arr(i)
                        Me.TreeView_championnat.SelectedNode.BackColor = Color.Blue
             Next i
         Catch
              Msgbox(MsgBox(ex.Message, MsgBoxStyle.Information, "Prog test")
         End Try
    Else
         MessageBox.Show("Erreur", MsgBoxStyle.Information, "Prog test")
    end if

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

Discussions similaires

  1. [Débutant] detecter selection node treeview
    Par Ashireon dans le forum VB.NET
    Réponses: 6
    Dernier message: 30/08/2012, 16h10
  2. 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
  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, 09h38
  4. Ajout de nodes dans un treeview par le client en asp.net
    Par thewaterkidny dans le forum ASP.NET
    Réponses: 3
    Dernier message: 23/04/2007, 17h24
  5. Réponses: 3
    Dernier message: 08/03/2007, 17h12

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