您的位置:首页 > 其它

Winform TreeView 节点拖动

2015-01-29 17:43 260 查看
private void treeView_ItemDrag(object sender, ItemDragEventArgs e)
{
TreeNode dragNode = e.Item as TreeNode;
DoDragDrop(dragNode, DragDropEffects.Move);
}
private void treeView_DragEnter(object sender, DragEventArgs e)
{
e.Effect = e.AllowedEffect;
}
private void treeView_DragOver(object sender, DragEventArgs e)
{
TreeView tv = sender as TreeView;
tv.SelectedNode = tv.GetNodeAt(tv.PointToClient(new Point(e.X, e.Y)));
}
private void treeView_DragDrop(object sender, DragEventArgs e)
{
TreeView tv = sender as TreeView;
//取得被拖拽的节点
TreeNode dragNode = e.Data.GetData(typeof(TreeNode)) as TreeNode;
if (dragNode.Equals(tv.SelectedNode))
return;

if (e.Effect == DragDropEffects.Move)
{
if (tv.SelectedNode == null)
{
tv.Nodes.Add(dragNode.Clone() as TreeNode);
dragNode.Remove();
return;
}
dragNode.Remove();
tv.SelectedNode.Nodes.Add(dragNode);
}
dragNode.Expand();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: