怎样根据node 的text属性的值是否等于str来选择某个TreeNode? 怎样根据node 的text属性的值是否等于str来选择某个TreeNode? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用递归,判断每个节点的text属性 private void selectNode(TreeNode node){ foreach(TreeNode temp in node.Nodes) { if(temp.Text == str) { tree.Select(); tree.SelectedNode = temp; break; } else { selectNode(temp); } }}把tree的根节点传进去 TreeNode FindNode(TreeNode root, string text){ foreach(TreeNode node in root.Nodes) { if(node.Text == text){ return node; } TreeNode fNode = FindNode(node, text); if(fNode != null) return fNode; } return null;} treeView1.SelectNode(FindNode(treeView1.Nodes[0], text)); 如果没有根结点呢如a 1 2 bcd我要在c节点下加一个同级的d节点呢? sorry我表达错了我的意思是我加了d节点后d节点没有父节点了d和a是同级别的那我怎么选择d节点呢 如果是对TreeView操作的话,(treeView)如果是选中checkbox的话:string str = "abc";foreach(TreeNode tn in treeView.Nodes){ CheckNode(tn,str);}private void CheckNode(TreeNode tn,string str){ if(tn.Text.Trim() == str) tn.Checked = true; if(tn.Nodes.Count > 0) { foreach(TreeNode t in tn.Nodes) { CheckNode(t,str); } }}如果是select:如果要是有多个一致的情况该如何处理呢?是一发现一致,就停止,还是继续匹配?如果是一发现就停止:string str = "abc";foreach(TreeNode tn in treeView.Nodes){ CheckNode(tn,str);}private void CheckNode(TreeNode tn,string str){ if(tn.Text.Trim() == str) { treeView.SelectedNode = tn; return; } if(tn.Nodes.Count > 0) { foreach(TreeNode t in tn.Nodes) { CheckNode(t,str); } }}如果是一直找,将最后一个选定:string str = "abc";foreach(TreeNode tn in treeView.Nodes){ CheckNode(tn,str);}private void CheckNode(TreeNode tn,string str){ if(tn.Text.Trim() == str) { treeView.SelectedNode = tn; } if(tn.Nodes.Count > 0) { foreach(TreeNode t in tn.Nodes) { CheckNode(t,str); } }}如果不是对TreeView操作,那就看具体情况了。 如何在C#控制台下输出爱心符号 随即出题怎样实现 Windows 服务 谁有像网易163邮箱那样的网页编辑器 sql2005怎么连接数据库啊 概念问题,关于字符 DataGridView 中 没有RowDataBound 事件? 各位指点一下这个程序,我用栈的操作方式想输入多个字符,可是他只能输入一个字符。 如何获取客户端的响应信息? 关于数组与类的一个问题? visual studio 2003 中C#项目中添加向导都不能用!求助 如何得到ACCESS中所有自动增量的列???
{
foreach(TreeNode temp in node.Nodes)
{
if(temp.Text == str)
{
tree.Select();
tree.SelectedNode = temp;
break;
}
else
{
selectNode(temp);
}
}
}把tree的根节点传进去
{
foreach(TreeNode node in root.Nodes)
{
if(node.Text == text){
return node;
}
TreeNode fNode = FindNode(node, text);
if(fNode != null) return fNode;
}
return null;
}
如
a
1
2
b
c
d
我要在c节点下加一个同级的d节点呢?
我表达错了
我的意思是我加了d节点后
d节点没有父节点了
d和a是同级别的
那我怎么选择d节点呢
如果是选中checkbox的话:
string str = "abc";
foreach(TreeNode tn in treeView.Nodes)
{
CheckNode(tn,str);
}
private void CheckNode(TreeNode tn,string str)
{
if(tn.Text.Trim() == str)
tn.Checked = true;
if(tn.Nodes.Count > 0)
{
foreach(TreeNode t in tn.Nodes)
{
CheckNode(t,str);
}
}
}如果是select:
如果要是有多个一致的情况该如何处理呢?是一发现一致,就停止,还是继续匹配?
如果是一发现就停止:
string str = "abc";
foreach(TreeNode tn in treeView.Nodes)
{
CheckNode(tn,str);
}
private void CheckNode(TreeNode tn,string str)
{
if(tn.Text.Trim() == str)
{
treeView.SelectedNode = tn;
return;
}
if(tn.Nodes.Count > 0)
{
foreach(TreeNode t in tn.Nodes)
{
CheckNode(t,str);
}
}
}
如果是一直找,将最后一个选定:
string str = "abc";
foreach(TreeNode tn in treeView.Nodes)
{
CheckNode(tn,str);
}
private void CheckNode(TreeNode tn,string str)
{
if(tn.Text.Trim() == str)
{
treeView.SelectedNode = tn;
}
if(tn.Nodes.Count > 0)
{
foreach(TreeNode t in tn.Nodes)
{
CheckNode(t,str);
}
}
}如果不是对TreeView操作,那就看具体情况了。