Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

clique sur un node de treeview pour récupérer une info

13 réponses
Avatar
michael
Bonjour, je me suis débrouiller pour construire mon treeview, et j'ai réussi...
Malheureusement l'aide de microsoft est quand même bien léger, car je ne
trouve rien sur les infos d'un node à part:

tvwMyTree.Nodes(10).Parent.Text

Mais apriori, on n esais pas sur quel node l'utilisateur va cliquer...

Dois je utilisier : Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)???

Mais quelle est la syntaxe pour récupérer la key du node par exemple en
utilisant cet évenement??

Merci d'avance

3 réponses

1 2
Avatar
michael
Très bonne idée, mais pour la 2° si je clique sur le premier niveau (root) il
me fait une erreur (je suppose parcequ'il n'y a pas de niveau au dessus)...
Comment je peux compter combien de .Parent il existe??
je vais en attendant utilisé la première solution qui me parait bien!!
merci


"Vincent Guichard" wrote:

michael a écrit :
> En fait je viens d'essaier un de tous, alors fullPath retourne un path, ca
> c'est OK, et e fait c'était node.text que je cherchais, il me retourne
> exactement ce qui est sélectionner mais....
> Je remarque que ca ne résoud pas vraiment tout mon problème, même si c'est
> utile... Je voudrais savoir si il existe un moyen de différencier les niveau
> dans l'arborescence?? premier niveau(root) deuxieme niveau, troisième niveaux
> car à chaque niveaux correspond un type de donnée (2° niveau des station de
> mesure, et 3° niveau des paramètre de mesure), et j'arrive pas à différencié
> cela...
> c'est clair j'espère...
>

Pas vraiment, mais on va faire avec.

En principe, si tu construits le treeview, tu devrais être capable de
connaître à quel niveau se situe chaque node. Je supposes donc que sa
construction est automatisée et variable. Pour connaître la profondeur
dans l'arbre d'un node quelconque, je vois deux solution rapides.

1- Tu récupères Node.FullPath et tu comptes le nombre de séparateurs de
chemin ( '' par défault).

2- Tu comptes combien de .Parent sont accessibles depuis ton node.

Vincent Guichard



Avatar
Vincent Guichard
michael a écrit :
Très bonne idée, mais pour la 2° si je clique sur le pre mier niveau (root) il
me fait une erreur (je suppose parcequ'il n'y a pas de niveau au dessus )...
Comment je peux compter combien de .Parent il existe??
je vais en attendant utilisé la première solution qui me para it bien!!
merci



Par exemple, mais il y a moyen de faire autrement:

Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
Dim i As Integer
Dim n As Node
i = 0
Set n = Node
While Not n Is Nothing
Set n = n.Parent
i = i + 1
Wend
Debug.Print i
End Sub

Vincent Guichard
Avatar
michael
merci je vais essaier cette méthode aussi, la 1° marche très bien j'ai essaier!
merci beaucoup pour votre aide

"Vincent Guichard" wrote:

michael a écrit :
> Très bonne idée, mais pour la 2° si je clique sur le premier niveau (root) il
> me fait une erreur (je suppose parcequ'il n'y a pas de niveau au dessus)...
> Comment je peux compter combien de .Parent il existe??
> je vais en attendant utilisé la première solution qui me parait bien!!
> merci
>
Par exemple, mais il y a moyen de faire autrement:

Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
Dim i As Integer
Dim n As Node
i = 0
Set n = Node
While Not n Is Nothing
Set n = n.Parent
i = i + 1
Wend
Debug.Print i
End Sub

Vincent Guichard



1 2