我一个问题就是拖拽时候,有时候就拖拽没了,是咋回事啊,这个是我的代码:
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);
}
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);
}
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(); //删除已经移动的节点
}这样看看.