Comportement Treeview

winvsmac Messages postés 84 Date d'inscription samedi 26 mai 2007 Statut Membre Dernière intervention 14 décembre 2016 - 26 avril 2009 à 14:36
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 - 19 mai 2009 à 01:57
Bonjour,

Un p'tit coup de main ne serait pas de refus

Problème de treeview en environnement VB6 :

Voici la structure de mon treeview :

OUTILS
   + Groupe Outils 1
      - Outil 1
      - Outil 2
   + Groupe Outils 2
      - Outil 3
      - Outil 4

Si par exemple, je clique sur 'Outil 4' tout se passe bien.
Si je clique sur la croix à gauche de 'Groupe Outils 2' pour fermer l'arboresence, et que je clique sur la croix à gauche de 'Groupe Outils 1' pour ouvrir ou fermer l'arborescence, le code situé sur Outil 4 s'exécute. C'est comme si j'avais cliqué sur outil 4.

J'ai essayé de mettre un selecteditem.selected=false pour ne plus plus l'exécution du code, mais en fait, plus rien ne se passe quand je clique sur mes lignes Outil 1, 2 3 ou 4.

Si qqun veut bien m'indiquer une piste !
Merci bcp
Jerome

3 réponses

LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
27 avril 2009 à 01:02
Salut,
il faut:
-Differencier les Noeuds de telle sorte que tu puisses reconnaitre
un Parent d' un Child.Pour celà, utilises la propriété Tag de chaque
Noeud en lui attribuant par exemple "P" pour parent et "F" pour fils.
-Mets ton code dans l' evenement Node_Clic.
 Tu testeras alors sur le tag du SelectedItem pour déterminer si c' est un Parent ou un Fils.

<hr />

[] Ce qui va sans dire. va mieux en le disant.

<hr />
winvsmac Messages postés 84 Date d'inscription samedi 26 mai 2007 Statut Membre Dernière intervention 14 décembre 2016
16 mai 2009 à 12:10
Salut Libre_Max

Tu aurais un bout de code comme exemple,  car je n'y arrive pas malgré tes conseils.

Cdlt
Jerome
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
19 mai 2009 à 01:57
Il me faudra le bout de code que tu as fait pour avoir :


OUTILS
   + Groupe Outils 1
      - Outil 1
      - Outil 2
   + Groupe Outils 2
      - Outil 3
      - Outil 4


pour pouvoir te montrer ou tu dois placer la ligne te permettant de


taguer les noeuds.


Par la suite il faudra juste ajouter un test au début de l' événement


Node_Click, genre :
Private Sub TreeView_NodeClick(ByVal Node As MSComctlLib.Node)
 
 If Node.Tag = "P" Then Exit Sub
 
 <Suite du traitement>


End Sub


Ceci a pour but d' éviter l' éxécution du code si tu cliques sur un noeud


que tu aurais défini comme parent auparavent.


NB:Je dis bien Private Sub TreeView_NodeClick(ByVal Node As


MSComctlLib.Node)
et non pas Private Sub TreeView_Click(), ou tu ne dois
d' ailleurs pas avoir de code, pour éviter son déclenchement lors des


événements Expand et Collapse.


 


 






 





<hr />




[] Ce qui va sans dire. va mieux en le disant.


<hr />
Rejoignez-nous