代码之家  ›  专栏  ›  技术社区  ›  Developer

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

  •  4
  • Developer  · 技术社区  · 14 年前

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

    5 回复  |  直到 14 年前
        1
  •  6
  •   Hans Olsson    14 年前

    TreeNode.Nodes 提供所查看节点的所有子节点的列表。

    Clear 在该集合上删除所有子节点。

        2
  •  1
  •   Developer    14 年前

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

    你可以查一下树节点财产。如果count大于零,则有子节点,否则没有

        4
  •  0
  •   Developer    13 年前

    'right click' 处理程序,假设您使用鼠标单击,您可以使用事件参数树eNodeMouseClickEventArgs来获取当前节点。。。

    void tv_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
        {
          if (e.Button == MouseButtons.Right)
          {
            TreeNode selectedNode = e.Node;
          }
        }
    
        5
  •  0
  •   Tarun Bhardwaj    11 年前
                    foreach (TreeNode node in treeview.Nodes)
                         {
    
                            if (node.ChildNodes.Count != 0)
                            {
    
                               //Node exists
    
                            }
                            else
                            {
    
                              //Node doesn't exists
    
                            }
                        }
    
        6
  •  0
  •   estinamir    5 年前

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

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