Drag and drop d'un treeview sur lui meme !!!

nicola2s Messages postés 57 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 22 novembre 2006 - 13 mai 2004 à 17:45
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 - 15 juin 2005 à 15:09
J'ai créé un treeview qui liste les fichiers de mes dossiers.

Et je voudrais pouvoir déplacer un fichier d'un dossier vers un autre(dans mon treeview) par un drag and drop (glisser coler)
j'ai trouvé les fonctions:

DragDrop
DragEnter
DragLeave
DragOver

les fcts marchent bien mais que quand je fais glisser un fichier ou du text qui viennent d'ailleur de mon treeview. quand je fais glisser un noeud de mon treeview sur ce meme treeview, il ne reconnait pas que c un drag and drop !

j'ai mis treeview.allowdrop
Mais y a ptet une autre option a activer ou autre chose a faire ...

merci

2 réponses

sideth Messages postés 13 Date d'inscription dimanche 10 mars 2002 Statut Membre Dernière intervention 7 décembre 2005
20 avril 2005 à 10:06
Salut!

Je cherche justement a faire la même chose que toi.

Je charge des donnée a partir d'une table et les affiches dans une treeview.

Si tu pouvais me dire comment faire le drag and drop dans une treeview, car je souhaiterais modifier lordre des donnée.

merci



sideth
0
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
15 juin 2005 à 15:09
Salut,

en faisant une recherche sur le net, je suis tombé sur ce post. Si ça vous intéresse toujours, j'ai fait un truc à ce sujet, mais c'est en vb.net (en cherchant un peu il doit y avoir moyen de l'adapter).
Pour faire un drag/drop dans le treeview, il faut utiliser les évènements suivants :

itemDrag
DragEnter
DragDrop

- dans itemDrag :
DoDragDrop(e.Item, DragDropEffects.Move)

- dans DragDrop :
avec


e.Data.GetDataPresent("System.Windows.Forms.TreeNode"
), tu testes si ce que tu glisses est bien un treenode
Si c'est le cas :


pt = tvArbor.PointToClient(
New Point(e.X, e.Y))


noeudDestination = tvArbor.GetNodeAt(pt)


nvNoeud = e.Data.GetData("System.Windows.Forms.TreeNode")

- dans DragEnter :


pt = tvArbor.PointToClient(
New Point(e.X, e.Y))


noeud = tvArbor.GetNodeAt(pt)



'on teste si un noeud est sélectionné



If e.Data.GetDataPresent("System.Windows.Forms.TreeNode",
True)
Then


e.Effect = DragDropEffects.Move



Else


e.Effect = DragDropEffects.None



End
If

Voilà, si ça peut aider quelqu'un.

+
0
Rejoignez-nous