应该就是一个treeview执行delete,一个则是add吧,控制好节点的位置应该不难。

解决方案 »

  1.   

    直接用
    Treeview2.Items:=Treeview1.Items;
      

  2.   

    多层时,用递归。
    拷贝 Add和AddChild 会把数据复制过去。效率不高。好处就是数据是分开的。
      

  3.   

    Cipherliu(孤鹰) 同志说得对
      

  4.   

    Treeview2.Items.add(''):=Treeview1.Items.text;
      

  5.   

    提议:如果使用treeview的savetofile 和loadfromfile 是否easy一些。。
      

  6.   

    我喜欢看到例子才给分,做个DEMO过来看看
    [email protected]
      

  7.   

    function CopyTreeNode(mTreeNodeSource,  mTreeNodeDest: TTreeNode): Boolean;
    var
      I: Integer;
    begin
      Result := False;
      if not (Assigned(mTreeNodeSource) and Assigned(mTreeNodeDest)) then Exit;
      mTreeNodeDest.Assign(mTreeNodeSource);
      for I := 0 to mTreeNodeSource.Count - 1 do
        CopyTreeNode(mTreeNodeSource[I],
          TTreeView(mTreeNodeDest.TreeView).Items.AddChild(mTreeNodeDest, ''));
      Result := True;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      CopyTreeNode(TreeView1.Selected, TreeView2.Selected);
    end;