winform中根据节点的Name值或者Text值查找节点并展开树
原理:遍历树,当找到符合的节点后可对节点进行相应的操作(我对其设置了背景色),然后展开其父级即可;
下面直接上代码:
/// <summary>
/// 根据树节点的Name或者Text选中节点并展开树
/// </summary>
/// <param name="tnc">树节点集合</param>
/// <param name="term">查找条件</param>
/// <param name="value">查找有效值</param>
public static void expandSelectedNode(TreeNodeCollection tnc,string term,string value)
{
foreach (TreeNode treeNode in tnc)
{
if (treeNode.Nodes.Count >= 0)
{
switch (term)
{
case "Name":
if (treeNode.Name == value)
{
treeNode.BackColor = Color.Red;
TreeNode node = treeNode;
while (node.Parent != null)
{
node = node.Parent;
node.Expand();
}
return;
}
break;
case "Text":
if (treeNode.Text == value)
{
treeNode.BackColor = Color.Red;
TreeNode node = treeNode;
while (node.Parent != null)
{
node = node.Parent;
node.Expand();
}
return;
}
break;
}
expandSelectedNode(treeNode.Nodes, term, value);
}
}
}