using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace TEST
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// 给目录树添加结点
TreeNode group_animal = new TreeNode("动物");
TreeNode subgroup_animal = new TreeNode("哺乳动物");
TreeNode a1 = new TreeNode("小狗");
TreeNode a2 = new TreeNode("小猪");
TreeNode a3 = new TreeNode("小羊");
subgroup_animal.Nodes.Add(a1);
subgroup_animal.Nodes.Add(a2);
subgroup_animal.Nodes.Add(a3);
group_animal.Nodes.Add(subgroup_animal);
TreeNode subgroup_animal2 = new TreeNode("海洋动物");
TreeNode b1 = new TreeNode("鲨鱼");
TreeNode b2 = new TreeNode("鲸鱼");
TreeNode b3 = new TreeNode("泥鳅");
subgroup_animal2.Nodes.Add(b1);
subgroup_animal2.Nodes.Add(b2);
subgroup_animal2.Nodes.Add(b3);
group_animal.Nodes.Add(subgroup_animal);
group_animal.Nodes.Add(subgroup_animal2);
this.treeView1.Nodes.Add(group_animal);
TreeNode goup_plant = new TreeNode("植物");
this.treeView1.Nodes.Add(goup_plant);
TreeNode zhongzhiwu = new TreeNode("种植物");
TreeNode beifang = new TreeNode("北方种植物");
TreeNode nanfang = new TreeNode("南方种植物");
zhongzhiwu.Nodes.Add(beifang);
zhongzhiwu.Nodes.Add(nanfang);
goup_plant.Nodes.Add(zhongzhiwu);
TreeNode wheet = new TreeNode("小麦");
TreeNode corn = new TreeNode("玉米");
beifang.Nodes.Add(wheet);
beifang.Nodes.Add(corn);
TreeNode rice = new TreeNode("大米");
TreeNode ganzhe = new TreeNode("甘蔗");
nanfang.Nodes.Add(rice);
nanfang.Nodes.Add(ganzhe);
}
private void button_Click(object sender, EventArgs e)
{
// 递归的对TreeView进行
//foreach (TreeNode t in treeView1.Nodes)
//{
// TreeNode temp = SearchTreeNode(t, textBox1.Text);
// if (temp!=null)
// {
// this.treeView1.SelectedNode = temp;
// this.treeView1.Focus();
// return;
// }
//}
TreeNode node = SearchTreeNode_2(treeView1.Nodes, textBox1.Text);
if (node!=null)
{
this.treeView1.SelectedNode = node;
this.treeView1.Focus();
}
}
private TreeNode SearchTreeNode(TreeNode node, string name)
{
// 如果没有子节点,则返回到上一层调用
if (node==null)
{
return null;
}
else
{
// 函数返回运行
if (node.Text.ToLower().Contains(name.ToLower()))
{
//
return node;
}
TreeNode result =null;
foreach (TreeNode t in node.Nodes)
{
// 遍历所有的子节点
result = SearchTreeNode(t, name);
if (result!=null)
{
return result;
}
}
return result;
}
}
private TreeNode SearchTreeNode_2(TreeNodeCollection TNC, string name)
{
if (TNC == null)
{
// 没有子节点,说明已经到树的叶子结点的后面,函数应该返回
return null;
}
else
{
// 访问当前结点集合
TreeNode result = null;
foreach (TreeNode node in TNC)
{
if (node.Text.ToLower().Contains(name.ToLower()))
{
result = node;
return result;
}
result = SearchTreeNode_2(node.Nodes, name);
if (result!=null)
{
return result;
}
}
return result;
}
}
}
}
递归的遍历TreeView中的所有结点 方法2
最新推荐文章于 2022-12-07 19:04:34 发布