Rafraichissement de treeview

zarbiman Messages postés 53 Date d'inscription lundi 7 juillet 2003 Statut Membre Dernière intervention 20 octobre 2005 - 27 juil. 2005 à 10:18
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 - 27 juil. 2005 à 16:12
Bonjour, j'ai un treeview dans un formulaire Access qui fonctionne bien, et j'aimerais ajouter une procédure qui me retrouve l'élément sélectionné après un rafraichissement. si cet élément n'existe plus on selectionnerait alors élément voisin, ou alors son parent, etc...

J'ai fait la procédure et en théorie elle fonctionne. Mon problème c'est qu'il me faudrait une copie de la collection de nodes avant la mise à jour, et que je n'arrive qu'à faire une référence qui pointe vers la collection.

J'ai donc pensé faire un treeview "virtuel" dans lequel je copierais mes nodes, mais je ne trouve pas de méthode pour ajouter directement une node à un treeeview

Si quelqu'un a une idée pour mon problème, ça m'aiderait beaucoup !! Je préfererais utiliser ma premiere idée (un objet collection copié sur la collection d'origine) plutot que la seconde (le treeview virtuel) mais au point où j'en suis je prend tout...

Merci d'avance !

3 réponses

cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
27 juil. 2005 à 15:12
Salut,

En quoi développes-tu? J'ai utilisé les TreeView en .net, et il existe une fonction Clone() qui fait une copie de ton noeud (et de ses fils).

@+
0
zarbiman Messages postés 53 Date d'inscription lundi 7 juillet 2003 Statut Membre Dernière intervention 20 octobre 2005
27 juil. 2005 à 16:05
C'est du Access donc c'est du VBA, donc pas de l'objet... En objet, ça ne poserait pas de probleme évidemment

Pour ce qui est de ma question, j'ai contourné le probleme de façon un peu bourrine :

For i = 1 To Me.TV_ajout.nodes.Count
Set n = Me.TV_ajout.nodes.item(i)
If Not n.parent Is Nothing Then Set n = Me.TV_CopieCollectionNodes.nodes.Add(n.parent.key, tvwChild, n.key, n.Text)
If n.parent Is Nothing Then Set n = Me.TV_CopieCollectionNodes.nodes.Add(, , n.key, n.Text)
Next i

J'ai donc créé basiquement mes nodes dans un treeview invisible... ça prend pas trop de temps, mais c'est quand meme bien moins élégant qu'une copie d'objet !

Donc la question reste posée, si quelqu'un a une meilleure solution, je suis preneur
0
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
27 juil. 2005 à 16:12
et oui, c'est tellement plus pratique quand on peut utiliser des objets...
En tout cas, je n'ai pas de meilleure solution.

@+
0