C# 将treeView节点文本与字符串进行比较

C# 将treeView节点文本与字符串进行比较,c#,winforms,treeview,nodes,C#,Winforms,Treeview,Nodes,我正在处理一个Winform应用程序,如何检查是否有一个树节点,它的文本在string Mystring中?我怎样才能取回这个节点的标签 if (myString.Contains(treeView1.Nodes.ToString())) 此方法将从根遍历树,并找到Text位于myString public object FindNode() { var queue = new Queue<TreeNode>(); foreach (var n in treeVi

我正在处理一个Winform应用程序,如何检查是否有一个树节点,它的文本在
string Mystring
中?我怎样才能取回这个节点的标签

if (myString.Contains(treeView1.Nodes.ToString()))

此方法将从根遍历树,并找到
Text
位于
myString

public object FindNode()
{
    var queue = new Queue<TreeNode>();

    foreach (var n in treeView1.Nodes)
    {
         // Add all root nodes to queue
         queue.Enqueue(n);
    }

    while (queue.Count > 0)
    {
        // Take the next node from the front of the queue
        var node = queue.Dequeue();

        // Check if myString contains node text
        if (myString.Contains(node.Text))
            return node.Tag;

        // Add the node’s children to the back of the queue
        foreach (var child in node.Children)
        {
            queue.Enqueue(child);
        }
    }

    // None of the nodes matched the specified string.
    return null;
}
公共对象FindNode()
{
var queue=新队列();
foreach(treeView1.Nodes中的变量n)
{
//将所有根节点添加到队列
排队,排队(n);
}
而(queue.Count>0)
{
//从队列前面取下一个节点
var node=queue.Dequeue();
//检查myString是否包含节点文本
if(myString.Contains(node.Text))
返回node.Tag;
//将节点的子节点添加到队列的后面
foreach(node.Children中的变量child)
{
排队。排队(子级);
}
}
//没有节点与指定的字符串匹配。
返回null;
}

这只适用于第一个匹配的节点

private TreeNode FindMatchedNode(TreeNodeCollection tnCol, string text)
{
    TreeNode tn = null;

    foreach (TreeNode node in tnCol)
    {
        if (text.ToLower().Contains(node.Text.ToLower()))
        {
            tn = node;
            break;
        }
        else if (node.Nodes != null)
        {
            tn = FindNode(node.Nodes, text);

            if (tn != null)
                break;
        }
    }

    return tn;
}
对于所有匹配的节点

private List<TreeNode> FindAllMatchedNodes(TreeNodeCollection tnCol, string text)
{
    List<TreeNode> retVal = new List<TreeNode>();

    foreach (TreeNode node in tnCol)
    {
        if (text.ToLower().Contains(node.Text.ToLower()))
        {
            retVal.Add(node);
        }
        else if (node.Nodes != null)
        {
            retVal.AddRange(FindNode(node.Nodes, text));
        }
    }

    return retVal;
}
私有列表FindAllMatchedNodes(TreeNodeCollection tnCol,字符串文本)
{
List retVal=新列表();
foreach(tnCol中的TreeNode节点)
{
if(text.ToLower().Contains(node.text.ToLower()))
{
retVal.Add(节点);
}
else if(node.Nodes!=null)
{
AddRange(FindNode(node.Nodes,text));
}
}
返回返回;
}

hmmm,使用示例代码treeView1。节点将只检查TreeView的第一层次。这就是你想要的,还是你想与树视图层次结构中的所有节点进行比较?我想与所有节点进行比较,但我找不到如何进行比较。
var queue=new queue()
未重新确认。。缺少指令…?
node.Text
node.Tag
node.Children
也无法识别!