delphi 如何将一个treeview中的节点拖拽到另一个treeview控件的节点下
先增加节点内容到新的treeview; (直接新增节点,赋值即可)
再删除你拖动的treeview; (删除选中的节点即可)
我现在只会在同一个treeview下面,通过填写MouseDown(鼠标按下),tv1DragOver(鼠标移动),tv1DragDrop(鼠标松开)响应事件来拖动一个节点到同一个treeview的其他节点下面。但是我想把一个treeview控件的节点拖到并添加到另一个treeview 下面的时候就不会了。我想问应该填写什么响应事件来做到这一点,最好有样例程序。谢了。
procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
node: TTreeNode;
begin
node := TreeView1.GetNodeAt(X, Y); // 获取鼠标按下位置的节点
if (node <> nil) and (Button = mbLeft) then // and (node.Level > 0)
TreeView1.BeginDrag(True); // 启动拖动
end;
procedure TForm1.TreeView2DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
var
node: TTreeNode;
begin
node := TreeView2.GetNodeAt(X, Y);
if (node <> nil) and (TreeView1.Selected.Parent <> node) then // and (node.Level = 0)
Accept := True
else
Accept := False;
end;
procedure TForm1.TreeView2DragDrop(Sender, Source: TObject; X, Y: Integer);
var
node: TTreeNode;
begin
node := TreeView2.GetNodeAt(X, Y);
if (node <> nil) and (node.Level = 0) then
begin
TreeView1.Selected.MoveTo(node, naAddChild); // 将节点移动到目标节点的下一级
end;
end;
还不会的,有附件可以下载看看。