Drag&Drop گره های TreeView
یک کنترل treeView بر روی فرم قرار داده و کدهای زیر را در رویدادهای Load فرم ، ItemDrag ، DragEnter و DragDrop کنترل treeView بنویسید :
using System; using System.Drawing; using System.Windows.Forms; namespace DragAndDropTreeView { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { for (int i = 0; i < 5; i++) { TreeNode node = new TreeNode("Node " + i); for (int j = 0; j < 3; j++) { TreeNode n1 = new TreeNode("Sub-node :" + i + " - " + j); node.Nodes.Add(n1); } treeView1.Nodes.Add(node); } } 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 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(); //Remove Original Node NewNode.Remove(); } } } }
برنامه را اجرا و با درگ کردن گره ها نتیجه را مشاهده کنید.