public void getTreeNode(TreeNodeCollection tn, string name)
{
//tn2 = null;
foreach (TreeNode tree_node in tn)
{
if (tree_node.Text == name)
{
MessageBox.Show(tree_node.Text);
tn2 = tree_node;
break;
}
getTreeNode(tree_node.Nodes, name);
}
}
问什么会弹两个MessageBox
我用break return都会弹两个
我想弹出一个后就退出函数 怎么做呢
{
//tn2 = null;
foreach (TreeNode tree_node in tn)
{
if (tree_node.Text == name)
{
MessageBox.Show(tree_node.Text);
tn2 = tree_node;
break;
}
getTreeNode(tree_node.Nodes, name);
}
}
问什么会弹两个MessageBox
我用break return都会弹两个
我想弹出一个后就退出函数 怎么做呢
public bool getTreeNode(TreeNodeCollection tn, string name)
{
if(getTreeNode(tree_node.Nodes, name)==true)
return true;
else
foreach (TreeNode tree_node in tn)
{
if (tree_node.Text == name)
{
MessageBox.Show(tree_node.Text);
tn2 = tree_node;
return true;
}
}
return false;
}
当 Text != name,会进入 getTreeNode(tree_node.Nodes, name),所以会遇到两个 == name 也是很正常的。会弹两个MessageBox,应该 TreeNodeCollection 中至少有两个Text和name一样。你去看看是不是。
{
foreach (TreeNode tree_node in tn)
{
if (getTreeNode(tree_node.Nodes, name) == true)
return true;
if (tree_node.Text == name)
{
MessageBox.Show(tree_node.Text);
return true;
}
}
return false;
}
{
//tn2 = null;
foreach (TreeNode tree_node in tn)
{
if (tree_node.Text == name)
{
MessageBox.Show(tree_node.Text);
tn2 = tree_node;
return;
}
getTreeNode(tree_node.Nodes, name);
return;
}
}
{
//tn2 = null;
foreach (TreeNode tree_node in tn)
{
if (tree_node.Text == name)
{
MessageBox.Show(tree_node.Text);
tn2 = tree_node;
return true;
//break;
}
else
{
getTreeNode(tree_node.Nodes, name); }
}
}