public static void Sort(TreeNode treeNode, Tools.Controls.TreeNodeSorter.SortType sortType) { try { TreeView.BeginUpdate(); if (treeNode == null) { treeNode = TreeView.Nodes[0]; } else if (Tree.Node.GetNodeType(treeNode) == Type.Connection) { treeNode = treeNode.Parent; } Tools.Controls.TreeNodeSorter ns = new Tools.Controls.TreeNodeSorter(treeNode, sortType); TreeView.TreeViewNodeSorter = ns; TreeView.Sort(); foreach (TreeNode childNode in treeNode.Nodes) { if (GetNodeType(childNode) == Type.Container) { Sort(childNode, sortType); } } } catch (Exception ex) { Runtime.MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, (string) ("Sort nodes failed" + Constants.vbNewLine + ex.Message), true); } finally { TreeView.EndUpdate(); } }