public void ExpandNodes(TreeNode main, ref int act, bool expand = true) { if (main.IsExpanded == true) { expand = true; } foreach (TreeNode nodes in main.Nodes) { ListViewItem v = nodes.Tag as ListViewItem; if (nodes.IsExpanded || expand == true) { if (v == null) { continue; } //lv.Items.Insert(act + 1, v); //act = lv.Items.IndexOf(v); GV.Insert(act + 1, v); act = GV.IndexOf(v); if (nodes.IsExpanded) { ExpandNodes(nodes, ref act, false); } //nodes.Expand(); } } }