要为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);
}
}
private void treeView1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(typeof(TreeNode)))
{
e.Effect = DragDropEffects.Move;
}
else
{
e.Effect = DragDropEffects.None;
}
}
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添加节点的拖拽功能。当用户拖动节点时,可以将节点移动到其他位置。