C#.NET TreeView拖拽功能(Drag,Drop)
C#.NET TreeView拖拽功能(Drag,Drop) private Point Position = new Point(0, 0);
private void treeView1_ItemDrag(object sender, ItemDragEventArgs e) { DoDragDrop(e.Item, 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 myNode = null; if (e.Data.GetDataPresent(typeof(TreeNode))) { myNode = (TreeNode)(e.Data.GetData(typeof(TreeNode))); } else { MessageBox.Show("error"); } Position.X = e.X; Position.Y = e.Y; Position = treeView1.PointToClient(Position); TreeNode DropNode = this.treeView1.GetNodeAt(Position); // 1.目标节点不是空。2.目标节点不是被拖拽接点的字节点。3.目标节点不是被拖拽节点本身 if (DropNode != null &&& DropNode.Parent != myNode & DropNode != myNode) { TreeNode DragNode = myNode; // 将被拖拽节点从原来位置删除。 myNode.Remove(); // 在目标节点下增加被拖拽节点 DropNode.Nodes.Add(DragNode); } // 如果目标节点不存在,即拖拽的位置不存在节点,那么就将被拖拽节点放在根节点之下 if (DropNode == null) { TreeNode DragNode = myNode; myNode.Remove(); treeView1.Nodes.Add(DragNode); } } 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/mzoy/archive/2007/08/27/1760302.aspx
参考文档:
基于C#.NET C/S快速开发框架 - 代码自动生成功能 MDI程序子窗体的拖放功能(Drag,Drop) C#拖放技术(Drop&Drag)相关方法和事件 C#.Net 关键字ref和out的区别 C#.Net前台线程与后台线程的区别 C#.Net使用线程池(ThreadPool)与专用线程(Thread) C#.Net COM交操作性 - 强类型RCW和弱类型CCW详解 C#.Net 调用Delphi 编译的ActiveX COM组件(原) C#.Net值类型和引用类型区别 C#.Net开发继承UITypeEditor接口的自定义属性编辑器 C#.Net组件开发 - 设计时使用自定义属性编辑器持久化对象 标签:C#.Net组件开发 - 设计时持久化对象数组 标签:C#.Net组件开发 - 属性窗体内显示自定义名称 标签:C#.Net组件开发 - 自定义设计器(ComponentDesigner) C#文件拖放操作(DragDrop File)
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |