Treeview et Flexgrid

Résolu
Signaler
Messages postés
56
Date d'inscription
vendredi 31 janvier 2003
Statut
Membre
Dernière intervention
26 mai 2013
-
Messages postés
1229
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
16 juin 2009
-
Bonjour,
Je suis en train de développer un petit programme avec un
TreeView style Explorer, les fichiers et sous dossiers apparaissant
dans une FlexGrid.
Mon problème, c'est que j'aimerai que lorsque je
double clique sur un des sous dossiers affichés dans la FlexGrid, il
ouvre le nœud dans le TreeView...
Sauf que voila, j'utilise les fonctions suivantes :

    Treeview.SetFocus
    Treeview.Nodes(Treeview.SelectedItem.Key & (Flexgrid.Row - 1)).Selected = True

A partir de ce moment la, le nœud que je désire est bien sélectionné, mais impossible d'activer

   Private Sub Treeview_NodeClick(ByVal Node As MSComctlLib.Node)

car lorsque je demande

   Treeview_NodeClick (Treeview.SelectedItem.Key)

ca marche pas car "Type incompatible"

Merci d'avance !

7 réponses

Messages postés
56
Date d'inscription
vendredi 31 janvier 2003
Statut
Membre
Dernière intervention
26 mai 2013

Ouep, ça marche comme ça ^^ maintenant, étape suivante, mais ça n'a plus rien à voir avec les treeview ^^

En tout cas merci d'avoir orienté ma réflexion !
Messages postés
1229
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
16 juin 2009
1
Bonjour,

As-tu essayé :
            TreeView.SelectedItem.Expanded = True

Bon courage

S.L.B.
<hr />
Messages postés
56
Date d'inscription
vendredi 31 janvier 2003
Statut
Membre
Dernière intervention
26 mai 2013

Oui, j'ai déjà essayé, mais le problème, c'est que l'ajout des nœuds "sous dossiers" est dynamique... donc y a pas de nœud enfant tant que

     Private Sub Treeview_NodeClick(ByVal Node As MSComctlLib.Node)

n'a pas été activé...

Merci
Messages postés
1229
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
16 juin 2009
1
Re,
Selectionne le père (sans pour cela qu'il y ait l'évenement click) et ensuite applique le déployement une fois les fils créé...

Sur mon dernier TreeView je créais dynamiquement mes noeuds enfants et j'arrivais à les déployer ... Je te donne comment je faisais :

Set ndNode = TreeView.Nodes.Add(TreeView.SelectedItem.key, tvwChild, TreeView.SelectedItem.key & "_" & intI, ligne)
' une fois tous les enfants créé :
TreeView.SelectedItem.Expanded = True

Et je faisais ca pas sur un evenement click....

S.L.B.
<hr />
Messages postés
56
Date d'inscription
vendredi 31 janvier 2003
Statut
Membre
Dernière intervention
26 mai 2013

Le problème, c'est qu'au départ, j'ai juste les nœuds de mes disques.
Dés que je clique sur l'un d'eux, il scanne le premier niveau du disque et ajoute à la flexgrid les sous dossiers et les fichiers. Les sous dossiers sont également créés comme nœuds enfants.
Si je clique dans le treeview sur un des sous dossiers créés, il sera a son tour scanné, et ses sous dossiers et fichiers remplaceront ceux présents dans la flexgrid.
Mais si je double clique sur un dossier dans la flexgrid, il devient sélectionné dans le treeview, mais il n'est pas scanné, donc ses sous dossiers et fichiers n'apparaissent pas dans la flexgrid, et les nœuds enfants ne sous pas généré...

Evidement, je peux demander à mon programme d'effectuer le scanne en partant d'une "recomposition" du path, mais ca m'oblige à retaper une seconde fois mon code... à moins que je créé une sub dédié au scanne, et que le treeview_click fasse simplement appel à cette sub...

Je vais réfléchir la dessus en attendant que qqn trouve comme activé le treeview_click sans erreur ^^
Messages postés
1229
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
16 juin 2009
1
Tu viens toi même de donner la solution
Tu externalise ton scan et tu l'appelle quand tu cliques sur ton treeview ou sur ta grid.
C'est je pense le plus propre.... :)
Bon courage et bon coding...

S.L.B.
<hr />
Messages postés
1229
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
16 juin 2009
1
Pas de soucis...
Contente d'avoir pu t'aider... N'oubli pas de valider... Ca pourrait servir à d'autre.

S.L.B.
<hr />