OVH Cloud OVH Cloud

[VB6]Déplacement de Noeud dans un Treeview SANS Drag & Drop !

1 réponse
Avatar
Moskito
Bonjour =E0 tous !

Je vous pr=E9sente rapidement mon probl=E8me en visual Basic (vb 6 pas
.NET)...

J'ai un joli petit Treeview et je souhaiterais pouvoir g=E9rer ses
noeuds avec des boutons (PAS de Drag & drop).

Les fonctionnalit=E9s que je cherche =E0 introduire sont:

- d=E9placer un noeud "Tout en haut" de sa branche =3D> c'est fait !
- d=E9placer un noeud "Tout en bas" de sa branche" =3D> Je cherche encore
!
- d=E9placer un noeud d'un noeud vers le haut =3D> Je cherche encore !
- d=E9placer un noeud d'un noeud vers le bas =3D> Je cherche encore !

Donc voil=E0 mon probl=E8me !

Pour celui auquel j'ai r=E9pondu j'ai utilis=E9 la m=E9thode de
"r=E9affecter" au p=E8re le noeud en question (cel=E0 induit un
repositionnement du noeud juste en dessous de son p=E8re). Et je voulais
savoir si il existait des m=E9thodes similaires, ou tout du moins
"simple" pour arriver =E0 r=E9pondre aux autres probl=E8mes ??

Sinon je vois bien des solutions du type: Je cr=E9e un Noeud temp pour
stocker le Noeud que je veux d=E9placer, puis je supprime ce noeud, je
d=E9cale tout les noeuds "en dessous" d'un cran vers le haut, puis je
colle mon Noeud temp... mais je trouve =E7a tr=E9s lourd pour un si
simple d=E9placement...

SVP dites moi qu'il existe une m=E9thode plus simple

J'ai essay=E9 ceci:

Dim nParentNode As Node
Dim nNewSelectedNode As Node

Dim sKey As String
Dim sText As String

sKey =3D nSelectedNode.key
sText =3D nSelectedNode.text

Set nParentNode =3D nSelectedNode.FirstSibling

tvMyTreeview.Nodes.Remove (nSelectedNode.key)

Set nNewSelectedNode =3D tvMyTreeview.Nodes.Add(nParentNode, tvwLast,
tvMyTreeview.Nodes(nSelectedNode), sText)




Mais du coup, seul le noeud est transf=E9r=E9 en bas de la liste, il perd
ses enfants au passage... il doit vraiment y avoir une astuce mais
j'avoue qu'elle m'=E9chappe...=20
Une id=E9e ??=20



Merci de votre aide !!

1 réponse

Avatar
Moskito
C'est bon c'est résolu, merci de votre aide... lol ;)