C# 将treeView节点文本与字符串进行比较
我正在处理一个Winform应用程序,如何检查是否有一个树节点,它的文本在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
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
也无法识别!