SelectedNode depuis une string

cs_chouchou123 Messages postés 33 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 6 avril 2006 - 6 avril 2006 à 11:10
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 - 7 avril 2006 à 10:48
Bonjour,

Voilà mon problème: j'aiun treeview avec l'arborescence de ma machine. Dans une string j'ai un chemin (ex:" c:\Program Files...") et je voudrai sélectionner le noeud correspondant à ce chemin dans mon treeview!

en fait, j'ai essayer de faire MonTreeview.SelectedNode=.... ? le problème c'est que ca ne prend que le type TreeNode. Donc faudrai à partir de ma chaîne la transformer en TreeNode.

Quelqu'un à une idée?

Merci d'avance ++

8 réponses

t_barbillon Messages postés 341 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 10 février 2009 2
6 avril 2006 à 13:54
Salut, pourquoi ne pas construire un noeud à partir de ton string et sélectionné ce noeud ?
0
cs_chouchou123 Messages postés 33 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 6 avril 2006
6 avril 2006 à 16:15
Parce que si je créer un noeud à partier de ma string il m'ajoute un noeud avec le nom de ma string "c:\Program Files..." alors qu'il fait déjà parti de l'arborescence et que je veux juste le sélectionner!
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
6 avril 2006 à 16:23
Salut,
Une idée qui me passe par la tête (sûrement pas la meilleure...) c'est de tager chaque élément (chaque Node) lors de la construction de ton treeview (tu le tag avec le Path complet).
Ensuite, tu as plus qu'à itérer sur tout tes Nodes et de vérifier si le tag est égal à la valeur du string entrer.


<HR>
[/auteurdetail.aspx?ID=13319
[Pub] ]http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever /infomsg/auteurdetail.aspx?ID=13319
0
t_barbillon Messages postés 341 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 10 février 2009 2
7 avril 2006 à 08:12
Salut, je ne vois pas comment l'appel du constructeur de la classe TreeNode modifie ton contrôle TreeView.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
t_barbillon Messages postés 341 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 10 février 2009 2
7 avril 2006 à 10:10
Dans le pire des cas tu peux aussi parcourir ton arbre pour obtenir le noeud cherché puis faire un SelectNode :

/// <summary>
/// Retourne le premier noeud trouvé à partir du noeud de départ spécifié avec le nom spécifié
/// </summary>
/// Le noeud à partir duquel, commencer la recherche

/// Le nom du neud cherché

/// Le noeud cherché

public void GetNode(TreeNode StartNode, string NodeName, ref TreeNode Result)
{
if (StartNode.Text != NodeName)
{
foreach (TreeNode CurrentNode in StartNode.Nodes)
{
GetNode(CurrentNode, NodeName, ref Result);
}
}
else
{
Result = StartNode;
}
}
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
7 avril 2006 à 10:23
C'est exactement ce que je disais de faire :
Utiliser le tag est peut-être mieux que le text, car il veut éventuellement afficher le nom des fichiers dans le treeview (un nom peut revenir plusieurs fois).
Si le Node est taggé avec le path complet et que le text est le nom du fichier, on a pas ce problème.


<HR>
[/auteurdetail.aspx?ID=13319
[Pub] ]http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever /infomsg/auteurdetail.aspx?ID=13319/infomsg/auteurdetail.aspx?ID=13319
0
t_barbillon Messages postés 341 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 10 février 2009 2
7 avril 2006 à 10:33
C'est vrai Bidou c'est ce que tu proposais mais je me suis dit qu'un petit bout de code en plus pour l'illustrer ne ferais pas de mal. C'est également vrai pour l'utilisation du Tag. Dsl
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
7 avril 2006 à 10:48
Euh oui, t'as bien fait de mettre un morceau de code, j'avais un peu la flegme
C'était juste que ton code se base sur le Text et que c'est pas forcément une bonne idée (tag est souvent mieux (un cast en plus à chaque itération tout de même...)).


<HR>
[/auteurdetail.aspx?ID=13319
[Pub] ]http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever /infomsg/auteurdetail.aspx?ID=13319/infomsg/auteurdetail.aspx?ID=13319
/infomsg/auteurdetail.aspx?ID=13319
0
Rejoignez-nous