/// <summary> /// Select Tree Node Path Name, split the path name by "->" /// </summary> /// <param name="tree"></param> /// <param name="path"></param> /// <returns></returns> public static string ChooseNode(this GuiTree tree, string path) { var paths = path.Split(new string[] { "->" }, StringSplitOptions.None); var initialLevel = 0; var myKey = ""; foreach (var key in tree.GetAllNodeKeys()) { var level = tree.GetHierarchyLevel(key); if (level == initialLevel) { var node = tree.GetNodeTextByKey(key); if (node.ToLower().Trim().Contains(paths[initialLevel].ToLower().Trim())) { initialLevel++; if (initialLevel == paths.Count()) { myKey = key; break; } } } } if (myKey != "") { List <string> keyList = new List <string>(); var parentKey = tree.GetParent(myKey); while (parentKey.Trim() != "") { keyList.Add(parentKey); parentKey = tree.GetParent(parentKey); } var count = keyList.Count(); if (count > 0) { for (int i = count - 1; i >= 0; i--) { tree.ExpandNode(keyList[i]); } } tree.SelectNode(myKey); } return(myKey); }
private static void expandNode(GuiTree tree, string path) { string key = tree.GetNodeKeyByPath(path); if (tree.IsFolderExpandable(key) && tree.IsFolderExpanded(key) == false) { tree.ExpandNode(key); } var childCount = tree.GetNodeChildrenCount(key); if (childCount > 0) { var tempPath = path; for (int i = 1; i <= childCount; i++) { path += @"\" + i.ToString(); expandNode(tree, path); path = tempPath; } } }