WinForm中
有左右两个treeview控件,要把左边选中的节点以及下面所有子节点(如果有),都添加到右边那个treeview中如何实现呢我这样写treeView2.Nodes.Add(treeView1.SelectedNode)会报错:不能在多处添加或插入项“设备管理”。必须首先将其从当前位置移除或将其克隆。

解决方案 »

  1.   

    TreeView2.Nodes.Add(TreeView1.SelectedNode.Clone)
      

  2.   

    提示很明确
    克隆TreeView2.Nodes.Add(TreeView1.SelectedNode.Clone())
      

  3.   

    是这样啊treeView2.Nodes.Add(treeView1.SelectedNode.Text)吧,但是这样只能得到当前选中的节点。
    要同时得到选中节点下所有子节点 就要遍历一下
      

  4.   

    TreeNode tn = new TreeNode();
    tn = (TreeNode)treeView1.SelectedNode.Clone();
    treeView2.Nodes.Add(tn);2楼和3楼的说的对。这样更简单。
      

  5.   

    同一个treenode不能添加到两个treeview里面,需要深拷贝
      

  6.   

    上图中,我选中设备管理,那么它下面所有的节点,包括自己,都要复制到右边的treeview中treeview控件的操作实在是生手,各位有力的给帮个忙哈~
      

  7.   


    TreeView2.Nodes.Add(TreeView1.SelectedNode.Clone)只能复制选中的节点,它下面的子节点也要过去,遍历怎么做额
      

  8.   


    可以了private void addNodes(TreeNode node)
    {
        treeView_HaveRole.Nodes.Add((TreeNode)node.Clone());
        
    }
    clone方法所得的object对像要转为TreeNode