在TTREEVIEW中如何转移到指定的子树(100分)

  • 主题发起人 主题发起人 hpretty
  • 开始时间 开始时间
TreeView1.Items[0].selected :=true;
//Selected returns the selected node in the tree view.
 
var Node: TTreeNode;
while node <> nil do
begin
if Node.Text = (相应内容) then begin Node.Selected := True; Break; end;
node := Node.GetNext;
end;
 
var node:ttreenode;
begin
node:=treeview1.Selected;
if assigned(node) then
begin
while assigned(node.parent) do node:=node.Parent;
treeview1.Items.Delete(node);
end;
一个删除节点所在的树的例子
 
这个代码我作过:
function copytree(source:TTreenode):boolean;
begin
CopyTreeNodes(source,dtshowForm.DTTreeView.Selected,dtshowForm.DTTreeView);
result :=true;
end;
//COPY 树结构
procedure CopyTreeNodes(source:TTreenode;dest:TTreenode;DestTreeView:TTreeView);
var i:integer;
begin
if source<>nil then
begin
if dest=nil then dest:=DestTreeView.Items.AddChild(nil,source.Text);
dest.Selected :=true;
for i:=0 to source.Count -1 do
begin
DestTreeView.Items.AddChild(DestTreeView.Selected,source.Item.Text);
end;
for i:=0 to Source.count -1 do
begin
if source.Item.hasChildren then
CopyTreeNodes(source.Item,Dest.Item,DestTreeView);
end;
end;
end;
这是一个递归调用,不知明白没有,与2叉树的遍历相是。
COPY已经解决,再删掉没问题吧。
 
多人接受答案了。
 
后退
顶部