/* * InsertNodes */ /// <summary> /// Inserts selected nodes into the specified <paramref name="targetNode"/>. /// </summary> /// <param name="targetNode"></param> /// <param name="selected"></param> /// <exception cref="ArgumentNullException"> /// <paramref name="selected"/> is <see langword="null"/>. /// </exception> private static void InsertNodes(TreeNode targetNode, IList <TreeNode> selected) { DragDropService.RemoveNodesFromParents(selected); foreach (TreeNode treeNode in selected) { targetNode.Nodes.Add(treeNode); } targetNode.Expand(); }
/* * MoveNodes */ /// <summary> /// Moves selected nodes to the new location specified by the <paramref name="targetNode"/> index. /// </summary> /// <param name="targetNode"></param> /// <param name="selected"></param> /// <param name="dropPosition"></param> /// <exception cref="T:System.ArgumentNullException"> /// <paramref name="targetNode"/> is <see langword="null"/> /// -or- /// <paramref name="selected"/> is <see langword="null"/> /// </exception> private static void MoveNodes(TreeNode targetNode, IList <TreeNode> selected, NuGenDropPosition dropPosition) { if (targetNode == null) { throw new ArgumentNullException("targetNode"); } if (selected == null) { throw new ArgumentNullException("selected"); } int targetIndex = 0; if (dropPosition == NuGenDropPosition.After) { targetIndex = targetNode.Index + 1; DragDropService.RemoveNodesFromParents(selected); } else if (dropPosition == NuGenDropPosition.Before) { DragDropService.RemoveNodesFromParents(selected); targetIndex = targetNode.Index; } else { return; } foreach (TreeNode treeNode in selected) { if (targetNode.Parent != null) { targetNode.Parent.Nodes.Insert(targetIndex, treeNode); } else if (targetNode.TreeView != null) { targetNode.TreeView.Nodes.Insert(targetIndex, treeNode); } else { return; } } }