Controle TreeView

Résolu
Signaler
Messages postés
131
Date d'inscription
mardi 21 septembre 2004
Statut
Membre
Dernière intervention
23 septembre 2011
-
Messages postés
131
Date d'inscription
mardi 21 septembre 2004
Statut
Membre
Dernière intervention
23 septembre 2011
-
Bonjour,

Je cherche à identifier le noeud sélectionné dans un TreeView.
Serait il possible de m'indiquer quelques tutos, ou la manière de procéder ?

Merci pour toute aide

10 réponses

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
14 février 2014
38
euh... ok...

et pourquoi récupérer le texte du node plutot que la référence ???

TreeNode selection = this.tvw_browser.SelectedNode;

tout simplement !

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
305
Date d'inscription
vendredi 18 juillet 2003
Statut
Membre
Dernière intervention
2 août 2010
2
Pourquoi ne stocke tu pas la référence à ton objet dans le tag de ton node?

Théo
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
14 février 2014
38
sur la classe TreeView, il y a une propriété SelectedNode qui te retourne le noeud séléectionné... ca ne te convient pas ?

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
131
Date d'inscription
mardi 21 septembre 2004
Statut
Membre
Dernière intervention
23 septembre 2011

pas vraiment, dans le sens où ce noeud contient en réalité un membre d'un objet, que je souhaiterais retrouver dans une collection, et là j'avoue que je tourne en rond ...
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
14 février 2014
38
je ne comprends pas... tu peux expliquer ?

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
131
Date d'inscription
mardi 21 septembre 2004
Statut
Membre
Dernière intervention
23 septembre 2011

une collection de dossiers, contenant des canaux RSS:

foreach (
DictionaryEntry monDossier
in maCollectionDossiers)
{
   
dossier UnDossier = (
dossier)monDossier.Value;
    tnd_dossiers =
new
TreeNode(UnDossier.nom);
   
this.tnd_dossiers.Name =
"dossier";
         
foreach (
DictionaryEntry monCanal
in maCollectionCanaux)
         {
             
canal UnCanal = (
canal)monCanal.Value;
             
if (UnCanal.dossier == tnd_dossiers.Text)
              {
                   
this.tnd_dossiers.Nodes.Add(UnCanal.url,UnCanal.nom);
              }
          }
   
this.tvw_browser.Nodes.Add(tnd_dossiers);
}

this.tvw_browser.Sort();

effectivement, je peux récupérer et passer la valeur (dans un autre Form) avec:

string Selection =
this.tvw_browser.SelectedNode.Text;

Par contre, dans le second
 Form, qui est en fait une gestion des éléments affichés dans le TreeView, et dans laquelle je réaffiche un Treeview, je souhaiterais:
- mettre en évidence le noeud précédemment sélectionné
- obtenir une référence de l'objet pour les actions 'renommer' et 'supprimer'
Messages postés
131
Date d'inscription
mardi 21 septembre 2004
Statut
Membre
Dernière intervention
23 septembre 2011

Bien vu pour la récupération du noeud, mais comment pourrais je lui affecter la sélection dans le contrôle du second Form ?
Pour le tag j'y pense, ça m'a l'air tout à fait approprié
Messages postés
131
Date d'inscription
mardi 21 septembre 2004
Statut
Membre
Dernière intervention
23 septembre 2011

je ne comprend pas pourquoi





this





.tvw2.SelectedNode=
Frm_Principale


.TreenodeSelectionne;

m'affecte une valeur null (alors que Frm_Principale.TreenodeSelectionne a bien une valeur définie)
Messages postés
131
Date d'inscription
mardi 21 septembre 2004
Statut
Membre
Dernière intervention
23 septembre 2011

Problème résolu, avec dans le Form1 (Frm_Principale):

internal

static
TreeNode TreeNodeSelectionne;

puis:





TreeNodeSelectionne =




this
.tvw_browser.SelectedNode;


et dans le Form2:



TreeNode
[] MonNode = tvw2.Nodes.Find(

Frm_Principale
.TreeNodeSelectionne.Name,

true
);
tvw2.SelectedNode = (

TreeNode
) MonNode[0];

Merci
Messages postés
131
Date d'inscription
mardi 21 septembre 2004
Statut
Membre
Dernière intervention
23 septembre 2011

... et le tag m'est également très utile