public void HighlightNode(Category category, Color color) { var node = SearchNode(category, RootNode); if (node != null) { node.NodeFont = new Font(treeView1.Font, FontStyle.Bold); node.ForeColor = color; } }
/// <summary> /// Рекурсивно заполняем теги, состоящие из названий категорий /// </summary> private void FillTagsAndParents(Category category) { if (!IsNullOrEmpty(category.Name)) { category.Tags.Add(category.Name); category.PluginExportString += category.Name; } if (category.Categories.Count == 0) category.PluginExportString = category.PluginExportString.Trim('>'); category.Categories.ForEach(children => { children.Tags.AddRange(category.Tags); children.Tags.ForEach(t => { if (!IsNullOrEmpty(t)) children.PluginExportString += t + ">"; }); children.Parent = category; }); }
public void LoadTree(Category catalog) { NodeCollection.Clear(); var rootNode = new TreeNode(CatalogDictionary.Instance.Catalog.Name) { Tag = CatalogDictionary.Instance.Catalog }; NodeCollection.Add(rootNode); FillTreeView(CatalogDictionary.Instance.Catalog, NodeCollection[0]); }
public void ExpandToNode(Category category) { var node = SearchNode(category, RootNode); ExpandToExactNode(node); }
private TreeNode SearchNode(Category searchCategory, TreeNode startNode) { TreeNode node = null; while (startNode != null) { if (startNode.Tag == searchCategory) { node = startNode; //чето нашли, выходим break; } if (startNode.Nodes.Count != 0) //у узла есть дочерние элементы { node = SearchNode(searchCategory, startNode.Nodes[0]);//ищем рекурсивно в дочерних if (node != null) break; //чето нашли } startNode = startNode.NextNode; } return node;//вернули результат поиска }
private void FillTreeView(Category category, TreeNode treeNode) { for (int i = 0; i < category.Categories.Count; i++) { var newNode = treeNode.Nodes.Add(category.Categories[i].Name); newNode.Tag = category.Categories[i]; FillTreeView(category.Categories[i], treeNode.Nodes[i]); } }