先给个删除的
    
 if (this.treeView1.SelectedNode.Nodes.Count == 0)
        this.treeView1.Nodes.Remove(this.treeView1.SelectedNode);

解决方案 »

  1.   

    遍历树
    判断child是否为空,不为空return
      

  2.   

    相同的nameprivate bool isIn(TreeNodeCollection tnodes,string s)
            {
                foreach (TreeNode td in tnodes)
                {
                    if (td.Name == s) return true;
                    if (td.Nodes.Count > 0)
                        if (isIn(td.Nodes, s)) return true;
                }
                return false;        }  if (isIn(this.treeView1.Nodes, "节点name"))
                    MessageBox.Show("有");
                else
                    MessageBox.Show("没有");
      

  3.   

    判断相同name那个我想通过通过数据库来判断?还有我就是想要个删除时遍历树的代码,希望能有代码
      

  4.   

    TreeRoom 就是 treeView1
    问题1:添加时判断是否存在相同的name
    private void ADDTreeNode()
    {
     //判断是否有重名
      if(TraverseTreeNode(string reName))
       {
        MessageBox.Show("该节点已经存在!", "提示");
       }
      else
       {
           //添加节点(不知道你想查入哪里)
       }  

    private bool TraverseTreeNode(string reName)
    {
      //添加节点和当前节点的子节点之间是否有重名
      if (this.TreeRoom.SelectedNode.Nodes.Count > 0)
       {
          foreach (TreeNode node in this.TreeRoom.SelectedNode.Nodes)
          {   
              if (reName == node.Text)
                    return true;
          }
          return false;
        }
         //添加节点和当前节点的同级节点之间是否有重名(前提当前节点的父节点存在)         
       else if (this.TreeRoom.SelectedNode.Parent.Nodes.Count > 0)
        {      
            foreach (TreeNode node in this.TreeRoom.SelectedNode.Parent.Nodes)
           {
              if (reName.CompareTo(node.Text) == 0)
                   return true;
           }
           return false;
         }
    }
    问题2:删除treeview节点时如果存在子节点,则不允许删除
     private void DelTreeNode()
    {
     //判断是否有子节点
      if(this.TreeRoom.SelectedNode.Nodes.Count>0)
       {
        MessageBox.Show("该节点包含子节点!", "提示");
       }
      else
       {
        //移除当前节点
        this.TreeRoom.SelectedNode.Remove(); 
       }  
    }
    补充: 
       问题1:不知道你添加节点重名判断是否在整棵树里面,如果那样需要遍历整棵树。         
    private bool TraverseTreeNode(string reName)
    {
      bool flag = false;
       foreach (TreeNode node in TreeRoom.Nodes.Nodes)
       {
         if(node.Nodes.Count>0)
           {
               flag = TraverseTreeNode(reName);
              if(flag)
                 return true;  
           }         
         else 
           {
              if (reName.Equals(node.Text))
                return true;
           }
        }
       return false;
    }
    代码我没有测试,你试试看看!  
      

  5.   

    修改一下就是遍历了.private void bl(TreeNodeCollection tnodes)
            {
                foreach (TreeNode td in tnodes)
                {
                   ........//  处理Treenode td                 
                    if (td.Nodes.Count > 0)
                            bl(td.Nodes);
                 }
               
            }
      

  6.   

    里面有问题,有几个括号是中文格式下输入的。
    汉!
     遍历也有问题
    private bool TraverseTreeNode(string reName) 

      bool flag = false; 
       foreach (TreeNode node in TreeRoom.Nodes) 
       { 
         if(node.Nodes.Count> 0) 
           { 
               flag = TraverseTreeNode(reName); 
              if(flag) 
                 return true;   
           }          
         else  
           { 
              if (reName.Equals(node.Text)) 
                return true; 
           } 
        } 
       return false; 
      

  7.   

    添加的时候我不是要遍历树啊,添加的时候和这个treeview是两个项目的,我就是想要通过数据库来表的name字段来判断是否有相同数据
      

  8.   

    没人了吗?添加我是要访问数据库的啊,添加不是要treeview的
      

  9.   

    那就在要插入前与数据库里的数据比较Select count(*) from tabel1 where name = name1
    如果反回0 就插入