我一个问题就是拖拽时候,有时候就拖拽没了,是咋回事啊,这个是我的代码: 
private void treeView_DragDrop(object sender, DragEventArgs e) 
        { 
            TreeNode NewNode; 
                    if(e.Data.GetDataPresent(typeof(TreeNode))) 
                  { 
                            Point pt = ((TreeView)sender).PointToClient(new Point(e.X, e.Y));                             TreeNode DestinationNode = ((TreeView)sender).GetNodeAt(pt);                             NewNode = (TreeNode)e.Data.GetData("System.Windows.Forms.TreeNode");                             DestinationNode.Nodes.Add((TreeNode) NewNode.Clone());                             DestinationNode.Expand();                             //删除已经移动的节点                             NewNode.Remove(); 
                    } 
        }         private void treeView_DragEnter(object sender, DragEventArgs e) 
        { 
              e.Effect = DragDropEffects.Move;        }         private void treeView_ItemDrag(object sender, ItemDragEventArgs e) 
        { 
            DoDragDrop(e.Item, DragDropEffects.Move); 
        }

解决方案 »

  1.   

     TreeNode NewNode;
                if (e.Data.GetDataPresent(typeof(TreeNode)))
                {
                    
                    Point pt = ((TreeView)sender).PointToClient(new Point(e.X, e.Y));                TreeNode DestinationNode = ((TreeView)sender).GetNodeAt(pt);
                    
                    NewNode = (TreeNode)e.Data.GetData("System.Windows.Forms.TreeNode");                if (DestinationNode.Equals(NewNode)) return;                NewNode.Remove();                DestinationNode.Nodes.Add(NewNode);                DestinationNode.Expand();                //删除已经移动的节点                
                }这样看看.