1、 首先声明 listSearchTreeNodes变量,红色为查询的文本控件,treeViewdx为当前treeview控件名称,
2、查询按钮事件如下:
if (string.IsNullOrEmpty(sertext.Text.Trim()))
{ return; }
listSearchTreeNodes = new List<TreeNode>();
foreach (TreeNode node in this.treeViewdx.Nodes) //Mange_TreeView是treeview控件名称
{
SearchLayer(node, this.sertext.Text.Trim());
}
for (int i = 0; i < listSearchTreeNodes.Count; i++)
{
TreeNode trNode = listSearchTreeNodes[i];
ExpandNode(trNode);
if (i == 0 && trNode.Parent != null)
{
this.treeViewdx.SelectedNode = trNode.Parent;
}
trNode.BackColor = Color.Red;
}
2、其中的函数如下:
//展开节点
private void ExpandNode(TreeNode node)
{
if (node.Parent != null)
{
node.Expand();
ExpandNode(node.Parent);
}
}
3、 private void SearchLayer(TreeNode node, string name)
{
if (node.Nodes.Count != 0)
{
for (int i = 0; i < node.Nodes.Count; i++)
{
SearchLayer(node.Nodes[i], name);
}
}
else if (string.Equals(node.Text, name) || node.Text.Contains(name))
{
listSearchTreeNodes.Add(node);
}
}