Example #1
0
 private void AddTree(Tree tree)
 {
     tree.TreeViewNode.SelectedImageKey = tree.TreeViewNode.ImageKey;
     tree.TreeViewNode.Tag = tree;
     treeMain.Nodes.Add(tree.TreeViewNode);
     treeMain.Font = AppSettings.Font;
     _rootNodes.Add(tree);
     tree.RefreshTree();
 }
Example #2
0
        private void AddTree(Tree tree, int positionIndex)
        {
            tree.TreeViewNode.SelectedImageKey = tree.TreeViewNode.ImageKey;
            tree.TreeViewNode.Tag = tree;

            // Remember current Tree's position index
            _treeToPositionIndex[tree] = positionIndex;

            // Add Tree's node in position index order. Because TreeNodeCollections cannot be sorted,
            // we create a list from it, sort it, then clear and re-add the nodes back to the collection.
            treeMain.BeginUpdate();
            List <TreeNode> nodeList = treeMain.Nodes.OfType <TreeNode>().ToList();

            nodeList.Add(tree.TreeViewNode);
            treeMain.Nodes.Clear();
            treeMain.Nodes.AddRange(nodeList.OrderBy(treeNode => _treeToPositionIndex[treeNode.Tag as Tree]).ToArray());
            treeMain.EndUpdate();

            treeMain.Font = AppSettings.Font;
            _rootNodes.Add(tree);
            tree.RefreshTree();
        }