阅读量:0
要为Winform Tree添加节点的拖拽功能,可以按照以下步骤操作:
在Tree控件的属性中设置AllowDrop属性为True,允许节点接受拖放操作。
添加节点的MouseDown事件处理程序,在该事件处理程序中记录被拖动节点的信息。
private void treeView1_MouseDown(object sender, MouseEventArgs e) { TreeNode node = treeView1.GetNodeAt(e.X, e.Y); if (node != null) { treeView1.DoDragDrop(node, DragDropEffects.Move); } }
- 添加节点的DragEnter事件处理程序,该事件处理程序判断拖放的数据类型是否为节点,并允许节点以移动方式被拖放。
private void treeView1_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(typeof(TreeNode))) { e.Effect = DragDropEffects.Move; } else { e.Effect = DragDropEffects.None; } }
- 添加节点的DragDrop事件处理程序,在该事件处理程序中完成节点的移动操作。
private void treeView1_DragDrop(object sender, DragEventArgs e) { TreeNode draggedNode = (TreeNode)e.Data.GetData(typeof(TreeNode)); TreeNode targetNode = treeView1.GetNodeAt(treeView1.PointToClient(new Point(e.X, e.Y))); if (targetNode != null) { draggedNode.Remove(); targetNode.Nodes.Add(draggedNode); } }
通过以上步骤,就可以为Winform Tree添加节点的拖拽功能。当用户拖动节点时,可以将节点移动到其他位置。