如何C#中实现在TreeView查找某一节点

如题所述

       /// <summary>
        /// 按钮事件
        /// </summary>
        private void button1_Click(object sender, EventArgs e)
        {
            //遍历Tree中的所有根节点
            foreach (TreeNode node in this.tvList.Nodes)
            {
                //将每个根节点代入方法进行查找
                TreeNode temp = FindNode(node, this.txtName.Text);
                //找到输出结果
                if (temp != null)
                {
                    MessageBox.Show(string.Format("找到,深度{0},索引{1}", temp.Level, temp.Index));
                    return;
                }
            }
            MessageBox.Show("没有找到");
        }

        //递归查询,找到返回该节点
        private TreeNode FindNode(TreeNode node, string name)
        {
            //接受返回的节点
            TreeNode ret = null;
            //循环查找
            foreach (TreeNode temp in node.Nodes)
            {
                //是否有子节点
                if (temp.Nodes.Count != 0)
                {
                    //如果找到
                    if ((ret = FindNode(temp, name)) != null)
                    {
                        return ret;
                    }
                }
                //如果找到
                if (string.Equals(temp.Text, name))
                {
                    return temp;
                }
            }
            return ret;
        }

可以实现你的要求,可以参考下

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-09-29
这个没什么难度吧!一个简单的递归就搞定了
第2个回答  2015-09-27
遍历所有节点查询位子

如何C#中实现在TreeView查找某一节点
EventArgs e) { \/\/遍历Tree中的所有根节点 foreach (TreeNode node in this.tvList.Nodes) { \/\/将每个根节点代入方法进行查找 TreeNode temp = FindNode(node, this.txtName.Text); \/\/找到输出结果 if (temp != null) { MessageBox.Show...

C#语言,是这样一个问题:有一个TreeView树,由于内容太多,实现模糊查找...
你查询子节点的时候就传当前选择的节点ID,然后查询的时候用子节点的父节点id=传进去的ID来查,这样查询出来的就是当前节点下的第一层子节点,一次类推,所有的节点在你展开的时候都能查询出来,并且每次查询都不会查询太多。

C# Winform treeView节点查找定位问题
按图标区分即可(ImageIndex属性)。另一种办法是判断如果没有子节点,就是车子,如果有子节点就是目录(如果存在下面没有车子的目录就会区分错)。选择使用TreeNode.Selected = true即可。但TreeView的HideSelection要设置为false,否则焦点放在其他在方,就看不到那个选中的节点了。

C# win treeview如何获取check选中的值? Treeview是绑定数据的_百度知 ...
你需要的是递归 \/\/\/ \/\/\/ 获得所有被选中的节点 \/\/\/ \/\/\/ 节点集合 private bool GetTargetNode(TreeNodeCollection Nodes){ bool success=true;foreach (TreeNode TN in Nodes){ if (TN.Checked){ \/\/保存数据你想要的数据到数据库 if (保存失败){ success=false;break;} } success=Ge...

C#treeView单击事件选中节点
1、在界面上添加【treeView】的控件,并调整为合适大小。2、在程序界面上加入其它需要的控件:包括,用于输入父节点个数和子节点个数的2个输入框;生成节点的按钮、删除节点的按钮、清除所有节点的按钮;输出日志信息的文本框。3、编辑代码,输入【生成节点】的代码;获取子节点和父节点的个数,使用循环...

C#窗体里TreeView,显示被选中的节点
你弄个全局变量TreeNode lastNode;\/\/上一次选择的结点然后在AfterSelected事件的最后,判断上一次是否存在,如果存在,背景色切换回普通背景色,然后将当前选中的变成蓝色,最后将最新的选中节点赋值给lastNode.这样保证了每次选择新结点时,将上一次选择的结点颜色变回白色 ...

C#treeview树结构中如果树节点重复,那么查询时怎么判断是哪个节点呢
是指树节点的名称(Text)重复吧,一般都有对应的唯一id,你可以把这个id值保存到TreeNode实例的Tag属性里,然后根据id查询就可以了,这样也就区分了节点 希望回答对你有帮助

C#中如何用代码展开treeview中某个节点
TreeView1.Nodes[1].Expand()

C# .net treeview 获取节点
private void trvReport_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e){ \/\/获取节点位置 string txtNodeName = e.Node.Index; }

C#winform treeView获取当前选中节点下的所有叶子节点
可以通过 SelectedNode 获得当前选中节点然后就可以直接在这个选中对象的Nodes里面获取所有它的子节点啊\/\/获取此节点TreeNode tn = treeView.SelectedNode;\/\/进行遍历输出foreach (TreeNode Children in tn.Nodes) { MessageBox.Show(string.Format("节点有{0}", Children.Name));} 本回答由电脑网络分类达人 吕明推...

相似回答