我做一个TreeView,有鼠标右键重命名的功能!在我重名的时候我想历遍我修改节点那一层所有节点判断一下是否有重命名的!谢谢!各位师哥!请各位师哥代码明示!谢谢!

解决方案 »

  1.   

    唉,,,在Delphi里实现过......C#中还没有,试试再告诉你
      

  2.   

    private void treeView1_AfterLabelEdit(object sender, NodeLabelEditEventArgs e)
    {
        TreeNodeCollection vNodes; // 所在节点列表
        if (e.Node.Parent == null) // 最顶层节点
            vNodes = ((TreeView)sender).Nodes;
        else vNodes = e.Node.Parent.Nodes;
        foreach(TreeNode vNode in vNodes)
            if (vNode != e.Node && vNode.Text == e.Label)
                // 不是自己        文字一样
            {
                MessageBox.Show("同级节点,重名了!");
                e.CancelEdit = true;
                break;
            }
    }   
      

  3.   

    来晚了.....
    这个,是我自己写的也能实现的.可以参考,参考!
    传入修改过的节点root,和其下一级的所有子节点child,flag用语存储判断结果.递归遍历其下所有节点.public static void checkNode(TreeNode root, TreeNodeCollection child, ref bool flag)
            {
                
                for (int i = 0; i < child.Count; i++)
                {
                    if (root.Text==child[i].Text)
                    {
                        flag = true;
                        return;
                        
                    }
                    else
                    {
                        
                        checkNode(root, child[i].Nodes,ref flag);
                    }
                }
                return;
            }
      

  4.   

    http://community.csdn.net/Expert/topic/5709/5709429.xml?temp=.1637079
      

  5.   

    看看 TreeNode 的相关属性就ok了
      

  6.   

    //遍历      this.treeView1.SelectedNode.Parent.Nodes;选中节点的父节点的节点集合就是同层的了