现在的TreeView的结构如下:
TreeView
|
AAA—111
| —222
|
BBB—333
| —444
|
CCC—555
| —666现在我想点击Button1之后,能够直接使AAA文件夹移动到CCC文件夹的下面。而不是一步步地移下去,代码不知道如何写啊。
TreeView
|
AAA—111
| —222
|
BBB—333
| —444
|
CCC—555
| —666现在我想点击Button1之后,能够直接使AAA文件夹移动到CCC文件夹的下面。而不是一步步地移下去,代码不知道如何写啊。
然后
NodeAAA.MoveTo(NodeCCC, naAddChild);
var
i:integer;
index1,index2:integer;
Node1,Node2:TTreeNode;
begin
index1:=-1;
index2:=-1;
for i:=0 to TreeView1.Items.Count-1 do
begin
if TreeView1.Items[i].Text='AAA' then
index1:=i;
if TreeView1.Items[i].Text='CCC' then
index2:=i;
end; if (index1>=0) and (index2>=0) then
TreeView1.Items[index1].MoveTo(TreeView1.Items[index2],naAddChild);
end;
这里是通过名字定位的,还可以通过其他办法。你要把问题表达清楚,AAA,CCC是什么,可变的,什么意思?一定有区别。
if TreeView1.Items[i].Text='CCC' then 因为这里的"CCC"的数据是不一定的,可能是"CCC",也可能是"DDD"
另外我要的结果是这样的:TreeView
|
BBB—333
| —444
|
CCC—555
| —666
|
AAA—111
| —222实际上是要获得与"AAA"同一Level的最后一项的AbsoluteIndex的值.
请gzmhero(hihihi)帮助一下,谢谢了.
var
i:integer;
index1,index2:integer;
Node1,Node2:TTreeNode;
begin
index1:=-1;
index2:=-1;
for i:=0 to TreeView1.Items.Count-1 do
if TreeView1.Items[i].Text='AAA' then
index1:=i; for i:=TreeView1.Items.Count-1 downto 0 do
if TreeView1.Items[i].Level=TreeView1.Items[index1].Level then
begin
index2:=i;
break;
end;
if (index1>=0) and (index2>=0) then
TreeView1.Items[index1].MoveTo(TreeView1.Items[index2],naAddChild);
end;