zoukankan      html  css  js  c++  java
  • c# winform 通过递归在TreeView中查找某个结点

    在保存数据时,为了提高查找效率,将树形结构路径完整保存下来,例如tag值为x的一级节点,下面有一个tag值为y的二级节点,该节点下tag值为z的三级节点,路径就是x/y/z。

    查找该节点并设置为选中状态时,通过如下方法(递归)

    /// <summary>
    /// 在根据路由在树中查找某个节点
    /// </summary>
    /// <param name="router">路由信息,x/y/z</param>
    /// <param name="tv">要查找的数</param>
    /// <returns>返回被找到的节点</returns>
    public static TreeNode findTreeNode(string router, TreeView tv)
    {
        string[] nodeTags = router.Split('/');            
        return  findTreeNode(nodeTags, tv.Nodes,0);
    }
    
    /// <summary>
    /// 通过递归的方法找到节点
    /// </summary>
    /// <param name="destTag">要查找的节点的路由</param>
    /// <param name="tns">树形目录所有一级节点</param>
    /// <param name="j">层级,第一次为0</param>
    /// <returns>返回被找到的节点</returns>
    public static TreeNode findTreeNode(string[] destTag, TreeNodeCollection tns,int j)
    {
        TreeNode tn=null;
        for (int i = 0; i < tns.Count; i++ )
        {
            if (tns[i].Tag.ToString() == destTag[j])
            {
                if (tns[i].Nodes.Count > 0)
                {
                    j++;
                    tns[i].Expand();
                    tn = findTreeNode(destTag, tns[i].Nodes, j);
                }
                else
                {                        
                    tn = tns[i];
                }
            }
        }
        return tn;
    }
    
  • 相关阅读:
    微信Web开发者工具 移动调试 手机连接不上
    js 生成guid 自定义函数
    json
    c# 返回时间差
    Quartz.Net和队列应用demo
    数据库字段数字表示含义的枚举维护
    API文档自动生成,Swagger的配置
    请求资源文件报500错误
    文件上传三:base64文件上传
    文件上传二:FormData上传
  • 原文地址:https://www.cnblogs.com/yesok/p/12892777.html
Copyright © 2011-2022 走看看