コード例 #1
0
        /// <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);
        }
コード例 #2
0
        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;
                }
            }
        }