ZeMoskito
Messages postés13Date d'inscriptionvendredi 30 mai 2003StatutMembreDernière intervention 3 avril 2006
-
6 mars 2006 à 15:43
ZeMoskito
Messages postés13Date d'inscriptionvendredi 30 mai 2003StatutMembreDernière intervention 3 avril 2006
-
7 mars 2006 à 14:26
Bonjour à tous !
Je vous présente rapidement mon problème...
J'ai un joli petit Treeview et je souhaiterais pouvoir gérer ses noeuds avec des boutons (PAS de Drag & drop).
Les fonctionnalités que je cherche à introduire sont:
- déplacer un noeud "Tout en haut" de sa branche => c'est fait !
- déplacer un noeud "Tout en bas" de sa branche" => Je cherche encore !
- déplacer un noeud d'un noeud vers le haut => Je cherche encore !
- déplacer un noeud d'un noeud vers le bas => Je cherche encore !
Donc voilà mon problème !
Pour celui auquel j'ai répondu j'ai utilisé la méthode de "réaffecter" au père le noeud en question (celà induit un repositionnement du noeud juste en dessous de son père). Et je voulais savoir si il existait des méthodes similaires, ou tout du moins "simple" pour arriver à répondre aux autres problèmes ??
Sinon je vois bien des solutions du type: Je crée un Noeud temp pour stocker le Noeud que je veux déplacer, puis je supprime ce noeud, je décale tout les noeuds "en dessous" d'un cran vers le haut, puis je colle mon Noeud temp... mais je trouve ça trés lourd pour un si simple déplacement...
SVP dites moi qu'il existe une méthode plus simple ;)
Merci de votre aide !!
Halala la prog, PES, l'infographie... heuresement que ma femme est moins jalouse que mon PC ;).
A voir également:
Déplacement "Tout en bas" d'une branche dans un Treeview !
ZeMoskito
Messages postés13Date d'inscriptionvendredi 30 mai 2003StatutMembreDernière intervention 3 avril 2006 7 mars 2006 à 14:26
Bon c'est bon j'ai trouvé... enfin j'ai bidouillé (copie > déplacement>fils change de père>suppression vieux père...) et ça marche c'est l'essentiel :)
La mise à jour de mon arbre est un peu longuette (notamment pour le déplacement des noeuds racines) mais le résultat obtenu est correct et c'est l'essentiel !
Dalida
Messages postés6728Date d'inscriptionmardi 14 mai 2002StatutContributeurDernière intervention11 janvier 2016 6 mars 2006 à 16:01
salut,
à mon avis il faut
enlever le Node de la collection du TreeView pour pouvoir ensuite
l'insérer à l'endroit voulu. tout ça dans une seule méthode avec une
énumération pour la position souhaitée.
Friend Enum NodeMoving
FirstPosition
PreviousPosition
NextPosition
LastPosition
End Enum
Dim nodToMove As TreeNode = Nothing ' à affecter
Dim pos As NodeMoving = NodeMoving.FirstPosition ' à déterminer
Dim index As Integer = nodToMove.Index
Select Case pos
Case NodeMoving.FirstPosition
index = 0
Case NodeMoving.LastPosition
index = CInt(nodToMove.Parent.Nodes.Count - 1)
Case NodeMoving.PreviousPosition
index -= 1
Case NodeMoving.NextPosition
index += 1
End Select
TreeView.Nodes.Remove(nodToMove)
TreeView.Nodes.Insert(index, nodToMove)
à tester...
[ Dalida ]<hr> pensez à indiquer le langage utilisé et sa version !
Set nNewSelectedNode = tvMyTreeview.Nodes.Add(nParentNode, tvwLast, tvMyTreeview.Nodes(nSelectedNode), sText)
Mais du coup, seul le noeud est trasnféré en bas de la liste, il perd ses enfants au passage... il doit vraiment y avoir une astuce mais j'avoue qu'elle m'échappe...
Une idée ??
Halala la prog, PES, l'infographie... heuresement que ma femme est moins jalouse que mon ordinateur.
asecher
Messages postés262Date d'inscriptionlundi 20 octobre 2003StatutMembreDernière intervention27 avril 20071 6 mars 2006 à 23:37
Moi, tu sais, les histoires de noeuds, chacun les siens....
Mais je pense qu'il faut chercher à "swapper" le node vis-a-vis de son conteneur (le parent) et éviter de supprimer; Je n'ai pas VB sous la main mais dès que j'ai, je teste et te réponds; Mais je pense que tu aura trouvé entretemps.
ZeMoskito
Messages postés13Date d'inscriptionvendredi 30 mai 2003StatutMembreDernière intervention 3 avril 2006 7 mars 2006 à 09:40
Quand tu parles de swapper... c'est mettre de coté le Noeud sans le supprimer c'est ça ?? mais outre l efait que je ne sais pas comment faire ;) ) dans ce cas ne risque-je pas de perdre les fils du noeud ?? Ou alors il faut "swapper" toute la famille ?
Bref, je pense cerner ton idée mais j'ai encore quelques lacunes en VB (je rappelle que ce n'est PAS du .Net) donc ton aide sera la bienvenue quand tu auras le temps :)
Merci encore !
Halala la prog, cs, l'infographie... heuresement que ma femme est moins jalouse que mon ordinateur.