private void treeView1_DragDrop(object sender, DragEventArgs e) { 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); TreeNode newNode = (TreeNode)e.Data.GetData("System.Windows.Forms.TreeNode"); TreeNode sourceNode = newNode.Parent; if (destinationNode != sourceNode && destinationNode != newNode) { newNode.Remove(); var item = newNode.Tag as PKBoxItem; item.Remove(); var visitor = new PKItemAddVisitor(item); (destinationNode.Tag as PKBoxItem).Accept(visitor); if (visitor.Added) { destinationNode.Nodes.Add(newNode); } else { (sourceNode.Tag as PKBoxItem).Accept(visitor); sourceNode.Nodes.Add(newNode); } treeView1.SelectedNode = newNode; pkExtDesigner.DoLayout(); } } }
public void AddItem(PKBoxItem item) { if (this.SelectedItem != null) { var visitor = new PKItemAddVisitor(item); this.SelectedItem.Accept(visitor); if (visitor.Added) { this.appPage.DoLayout(); if (this.ItemAdded != null) { this.ItemAdded(item); } } } }