示例#1
0
        private void FindPath(string Path)
        {
            TreeNode node = null;
            string   s    = "";

            if ((Path == "") || (tv.Nodes.Count == 0))
            {
                return;
            }
            for (int i = 0; i < tv.Nodes.Count; i++)
            {
                s = tv.Nodes[i].Tag.ToString().Substring(1);
                if (s.ToLower() == Path.Substring(0, s.Length).ToLower())
                {
                    node = tv.Nodes[i];
                    break;
                }
            }
            if (node == null)
            {
                return;
            }
            node.Expand();
            tv.SelectedNode = node;
            if (node.Nodes.Count > 0)
            {
                node = node.Nodes[0];
            }
            else
            {
                node = null;
            }
            while (node != null)
            {
                s = node.Tag.ToString().Substring(1);
                if (s.ToLower() == Path.ToLower())
                {
                    tv.SelectedNode = node;
                    break;
                }
                if ((s.ToLower() != Path.ToLower()) && (s.ToLower() == Pub.GetFileNamePath(Path).ToLower()))
                {
                    tv.SelectedNode = node;
                }
                if ((Path.Length >= s.Length) && (s.ToLower() == Path.Substring(0, s.Length).ToLower()))
                {
                    node.Expand();
                    tv.SelectedNode = node;
                    if (node.Nodes.Count > 0)
                    {
                        node = node.Nodes[0];
                    }
                    else
                    {
                        node = null;
                    }
                    continue;
                }
                node = node.NextNode;
            }
            if (tv.SelectedNode != null)
            {
                SelectChange(tv.SelectedNode);
            }
        }