树状视图拖放实现

来源:互联网 发布:佳能打印机扫描软件 编辑:程序博客网 时间:2024/06/17 23:08
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace DragTree{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void Form1_Load(object sender, EventArgs e)        {            //初始化树状视图            TreeNode ParentNode1;            TreeNode ParentNode2;            ParentNode1 = treeView1.Nodes.Add("tv1");            ParentNode1.Nodes.Add("tv1FirstChild");            ParentNode1.Nodes.Add("tv1SecondChild");            ParentNode1.Nodes.Add("tv1ThirdChild");            ParentNode1.Nodes.Add("tv1FourthChild");            ParentNode1.Expand();            ParentNode2 = treeView2.Nodes.Add("tv2");            ParentNode2.Nodes.Add("tv2FirstChild");            ParentNode2.Nodes.Add("tv2SecondChild");            ParentNode2.Expand();        }        private void treeView2_ItemDrag(object sender, ItemDragEventArgs e)//拖拽时发生        {            DoDragDrop(e.Item, DragDropEffects.Move);        }        private void treeView1_ItemDrag(object sender, ItemDragEventArgs e)//拖拽时发生        {            DoDragDrop(e.Item, DragDropEffects.Move);        }        private void treeView1_DragEnter(object sender, DragEventArgs e)//移动到控件工作区时发生        {            e.Effect = DragDropEffects.Move;        }        private void treeView2_DragEnter(object sender, DragEventArgs e)//移动到控件工作区时发生        {            e.Effect = DragDropEffects.Move;        }        private void treeView1_DragDrop(object sender, DragEventArgs e)//拖拽完成时发生        {            TreeNode NewNode;//定义新节点            if (e.Data.GetDataPresent("System.Windows.Forms.TreeNode", false))            {                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 treeView2_DragDrop(object sender, DragEventArgs e)//拖拽完成时发生        {            TreeNode NewNode;            if (e.Data.GetDataPresent("System.Windows.Forms.TreeNode", false))            {                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();            }        }    }}


树状视图拖放实现,有些东西不是太懂。。。

0 0
原创粉丝点击