cs_chouchou123
Messages postés33Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention 6 avril 2006
-
6 avril 2006 à 11:10
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 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.
cs_chouchou123
Messages postés33Date d'inscriptionmercredi 18 décembre 2002StatutMembreDerniè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!
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 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.
t_barbillon
Messages postés341Date d'inscriptionmercredi 8 juin 2005StatutMembreDernière intervention10 février 20092 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;
}
}
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 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.
t_barbillon
Messages postés341Date d'inscriptionmercredi 8 juin 2005StatutMembreDernière intervention10 février 20092 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
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 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...)).