如何检查treeview根节点是否存在子节点

时间:2010-09-23 11:44:53

标签: c# winforms treeview

我有一个树视图,其根节点最初为Root。如果我右键单击Root节点,我将显示一个上下文菜单,其中一些选项为New和other,如果我选择New,我将向Root节点添加一个子节点。如果我再次右键单击Root节点,如果Root有子节点我想清除所有子节点并添加一个新的子节点我该怎么做

6 个答案:

答案 0 :(得分:6)

TreeNode.Nodes为您提供了您正在查看的节点的所有子节点的列表。

然后,您可以在该集合上调用Clear以删除所有子节点。

答案 1 :(得分:1)

毕竟答案如下

    if (tvwACH.HitTest(location).Node.Nodes.Count > 0 && tvwACH.SelectedNode.Parent == null )
        {
            foreach (TreeNode node in tvwACH.Nodes)
            {
                node.Nodes.Clear();
            }
    }

答案 2 :(得分:0)

'right click'处理程序中,假设您使用鼠标单击,您可以使用事件args TreeNodeMouseClickEventArgs来获取当前节点...

void tv_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
    {
      if (e.Button == MouseButtons.Right)
      {
        TreeNode selectedNode = e.Node;
      }
    }

答案 3 :(得分:0)

您可以检查TreeNode.Nodes属性。如果count大于零,那么你有子节点,否则不是

答案 4 :(得分:0)

您也可以尝试相反的操作,即检查当前节点是否具有父节点。

if(treeView1.SelectedNode.Parent == null) {} //parent
else{} //child

答案 5 :(得分:-1)

                foreach (TreeNode node in treeview.Nodes)
                     {

                        if (node.ChildNodes.Count != 0)
                        {

                           //Node exists

                        }
                        else
                        {

                          //Node doesn't exists

                        }
                    }