TreeNode trNode = null; if(e.Data.GetDataPresent("System.Windows.Forms.TreeNode", false)) { Point objPoint = ((TreeView)sender).PointToClient(new Point(e.X, e.Y)); TreeNode trNodeDestination = ((TreeView)sender).GetNodeAt(objPoint); //If no node from the destination tree view is selected then add the selected node to the //last node of the destination tree view. if (trNodeDestination == null) { trNodeDestination = ((TreeView)sender).Nodes[((TreeView)sender).Nodes.Count - 1].LastNode; } trNode = (TreeNode)e.Data.GetData("System.Windows.Forms.TreeNode"); if (trNodeDestination.TreeView != trNode.TreeView) { trNodeDestination.Nodes.Add((TreeNode)trNode.Clone()); trNodeDestination.Expand(); //Remove Original Node trNode.Remove(); } }