如何实现treeview的查找和显示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何实现treeview的查找和显示相关的知识,希望对你有一定的参考价值。

参考技术A /// <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;


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

在TreeView控件节点中显示图片

实现效果:

  技术分享图片

知识运用:

  TreeView控件中Nodes集合的Add方法  //创建节点并将节点放入集合中

  public virtual TreeNode Add (string key,string text,int imageIndex,int selectedImageIndex)

  技术分享图片

  以及TreeView控件的ExpandAll方法    //可以展开TreeView控件中的所有树节点

  public void ExpandAll()    

  public void CollapseAll()  //折叠

实现代码:

        private void button1_Click(object sender, EventArgs e)
        {
            treeView1.ImageList = imageList1;
            TreeNode nt = new TreeNode("公司职员",0,1);
            nt.Nodes.Add("name","小张",0,1);
            nt.Nodes.Add("name", "小刘", 0, 1);
            nt.Nodes.Add("name", "小李", 0, 1);
            nt.Nodes.Add("name", "小木", 0, 1);
            nt.Nodes.Add("name", "小胖", 0, 1);
            nt.Nodes.Add("name", "小虎", 0, 1);
            treeView1.Nodes.Add(nt);
            treeView1.ExpandAll();
           // treeView1.CollapseAll();
        }

 

以上是关于如何实现treeview的查找和显示的主要内容,如果未能解决你的问题,请参考以下文章

C#中如何实现TreeView控件选中根结点相应的子节点也选中,同时将信息相应的显示到DataGridView控件中。

.求助:点击Treeview节点的问题

vb 怎么实现 treeview部分节点的checkbox显示,部分隐藏

C# treeview 实现选取并复制功能

delphi 在DbGridEh中显示TreeView 效果

asp.net控件treeview如何实现无刷新效果