如何在 Visual C# .NET 应用程序中添加树视图拖放功能
2007-03-03 17:38
423 查看
创建示例的步骤 1. 在 Visual C# .NET 中新建一个 Windows 应用程序。默认情况下将创建 Form1。 2. 使用工具箱将两个树视图控件添加到 Form1 中。TreeView1 和 TreeView2 在默认情况下已创建。 3. 要允许拖放树视图控件,请在“属性”窗口中,将 TreeView1 和 TreeView2 的 AllowDrop 属性更改为 True。 4. 双击 Form1 以为 Form1 的 Load 事件生成方法处理程序。添加以下代码,以使用 TreeNode 对象填充这两个树视图控件,并定义事件处理程序: private void Form1_Load(object sender, System.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(); this.treeView1.ItemDrag += new System.Windows.Forms.ItemDragEventHandler(this.treeView_ItemDrag); this.treeView2.ItemDrag += new System.Windows.Forms.ItemDragEventHandler(this.treeView_ItemDrag); this.treeView1.DragEnter += new System.Windows.Forms.DragEventHandler(this.treeView_DragEnter); this.treeView2.DragEnter += new System.Windows.Forms.DragEventHandler(this.treeView_DragEnter); this.treeView1.DragDrop += new System.Windows.Forms.DragEventHandler(this.treeView_DragDrop); this.treeView2.DragDrop += new System.Windows.Forms.DragEventHandler(this.treeView_DragDrop); } 5. 添加下面的方法处理程序,以处理 TreeView1 或 TreeView2 的 ItemDrag 事件,具体取决于拖放操作的方向。此代码对当前拖动的项启动一个移动操作。 private void treeView_ItemDrag(object sender, System.Windows.Forms.ItemDragEventArgs e) { DoDragDrop(e.Item, DragDropEffects.Move); } 6. 添加下面的方法处理程序,以处理 TreeView1 或 TreeView2 的 DragEnter 事件,具体取决于拖放操作的方向: private void treeView_DragEnter(object sender, System.Windows.Forms.DragEventArgs e) { e.Effect = DragDropEffects.Move; } 7. 将下面的方法添加到 Form1 类中,让它紧跟在上一步中添加的方法后面: private void treeView_DragDrop(object sender, System.Windows.Forms.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"); if(DestinationNode.TreeView != NewNode.TreeView) { DestinationNode.Nodes.Add((TreeNode) NewNode.Clone()); DestinationNode.Expand(); //Remove Original Node NewNode.Remove(); } } } 8. 生成并运行项目。将节点从一个树视图控件拖到另一个树视图控件中。请注意,该节点已从源控件中移除,并已作为子节点添加到目标控件中。
相关文章推荐
- HOW TO: 在 Visual C# .NET 应用程序中提供文件拖放功能
- 如何使用 ASP.NET 应用程序以使用 Visual C#.NET 来查询索引服务目录
- c#应用程序如何添加弹出式广告功能
- 图像处理控件ImageGear for .NET教程如何为应用程序 添加DICOM功能(2)
- 图像处理控件ImageGear for .NET中如何给应用程序添加PDF功能
- 图像处理控件ImageGear for .NET如何为应用程序添加添加DICOM功能(1)
- 图像处理控件ImageGear for .NET教程如何为应用程序 添加DICOM功能(2)
- 如何向预先存在的 MFC 应用程序添加 OLE 拖放功能
- 在 Visual C# .NET 中将 Web 服务用作客户端应用程序的数据源
- 如何使用 ADO.NET 和 Visual C# .NET 连接到数据库并运行命令
- 如何使用 AllowPartiallyTrustedCallers 属性来调用具有一个强名称从 Web 页通过使用 Visual C#.NET、 Visual C# 2005年或更高版本的程序集
- 使用 Visual Studio .NET 客户端执行自动化功能后不退出 Office 应用程序
- Visual Studio .NET 无法创建或打开应用程序。问题很可能是因为本地Web服务器上没有安装所需的组件。请运行 Visual Studio .NET 安装程序并添加Web开发组件。
- 在 Visual C# .NET 中将 Web 服务用作客户端应用程序的数据源
- 70-316 使用Microsoft Visual C# .NET and Microsoft Visual Studio .NET 开发及实现基于Windows的应用程序 考点整理
- 如何在 Visual C# .NET 中使用 SqlDataAdapter 对象更新 SQL Server 数据库
- MFC 对话框应用程序去掉标题栏如何添加鼠标移动功能
- 如何使用 Visual C# .NET 对 DataGrid Windows 控件执行分页
- 如何使用 C# .NET 在 ASP.NET 应用程序中实现基于窗体的身份验证