【发布时间】:2015-12-09 11:58:07
【问题描述】:
我正在向树视图中的当前父节点添加一个子节点。但我的问题是,它将新节点添加到当前父节点的末尾,而不是添加到 if 为真的位置。
这是我的代码:
for (int i = 0; i < num; i++)
{
if (action_type1 != action_type2)
{
TreeNode new_node = = treeView1.Nodes[0].Nodes[position];
string new_name = "";
new_node.Nodes.Add(new_name);
}
}
当然,num、position、action_type1 和 action_type2 在我的代码中是变量,对于任何 for 循环,它们都是不同的整数和字符串。 action_type1 是 treeView 的节点名称,action_type2 是固定字符串。 if 如果存在与给定字符串相等的节点,则循环查找整个树,然后离开该节点,否则在树中插入一个空节点,然后递归执行。
但为了简单起见,让我们有:
int num = 2;
int position = 4;
string action_type1;
string action_type2;
【问题讨论】:
-
这篇文章有问题:foreach (TreeNode Node in nodes) { new_node = Node.Nodes[position]; }
-
num = 0不会一次运行循环。有很多缺失,这使得它比我想象的更混乱 -
@Saber - foreach 怎么样?你想在那里发生什么?因为它现在是无意义的。
-
你应该考虑使用TreeNodeCollection.Insert Method (Int32, TreeNode)而不是循环遍历nodes...
-
@Alex 你是对的。我是用另一种方式写的。因为通过
treeView1.Nodes[0].Nodes[position]我可以访问当前的父级。