C#, WinForms - DragDrop au sein de la même TreeViewControl

Je suis d'essayer de mettre en œuvre un glisser-déplacer d'un treeview élément au sein de la même contrôle.

Je veux être en mesure de déplacer un élément à partir de 1 nœud à un autre.

Voici mon code actuel, Lorsque je l'exécute, je peux voir que l'article a commencé à glisser, mais l'icône de windows ne le permettra pas être abandonné à tous les nœuds sur le Contrôle.

Mon code actuel

private void treeView1_ItemDrag(object sender, ItemDragEventArgs e)
{
    DoDragDrop(e.Item, DragDropEffects.Move);
}

private void treeView1_DragEnter(object sender, DragEventArgs e)
{
    e.Effect = DragDropEffects.Move;
}

private void treeView1_DragDrop(object sender, DragEventArgs e)
{
    if (e.Data.GetDataPresent(typeof(TreeNode)))
    {
        TreeNode sourceNode = e.Data.GetData(typeof(TreeView)) as TreeNode;

        var item = new TreeNode(sourceNode.Text);


        System.Drawing.Point pt = ((TreeView)sender).PointToClient(new System.Drawing.Point(e.X, e.Y));
        TreeNode DestinationNode = ((TreeView)sender).GetNodeAt(pt);

        DestinationNode.Nodes.Add(item);
        DestinationNode.Expand();
    }
}

OriginalL'auteur IEnumerable | 2014-01-04