I wrote this code that does not require cloning.
In my case, it moves one position in the nodes of the sister, but can be adapted
TreeNode selectedNode = treeViewChain.SelectedNode; if (selectedNode != null && selectedNode.Index > 0) { TreeNode parent = selectedNode.Parent; int selectedIndex = selectedNode.Index; selectedNode.Remove(); parent.Nodes.Insert(selectedIndex - 1, selectedNode); treeViewChain.SelectedNode = selectedNode; }
source share