使用treeview,如何在加载多次的情况下在一个节点下添加不重复的文字节点
点击节点的时候自动加载,有的时候又点击了这个节点,就想加载不存在的,存在的则不再添加,怎么做 问题点数:30、回复次数:4Top
1 楼SonicX(SonicX)回复于 2006-06-05 00:07:26 得分 0
点击时判断这个项目下是否有子项目,有就跳过
if Treeview1.Selected.HasChildren then exit;Top
2 楼pcbabyyeah8()回复于 2006-06-05 09:25:33 得分 0
这个哪行呀,我有好多子项目呢,我要的是里面的子项目是否重复呀!照你这个写每个节点只添加一个子项了,其它子项都不添加了!Top
3 楼apartst(一元http://www.ooland.com)回复于 2006-06-05 10:57:58 得分 0
那你添加的时候遍历子项,已存在的就跳过
或者加载时另外用一个StringList来保存关键字,下次加载时在这个StringList里检索是否已经存在Top
4 楼jascha_x()回复于 2006-06-05 13:04:50 得分 30
在程序里加个公用变量OperateID,OperateID2:String
在TreeTV的点击事件里就加这三句
OperateID := TreeTV.Selected.Text;
OperateID2:= TreeTV.Selected.Child.Text;
AddTreeView;
procedure TForm.AddTreeView;
VAR Temp,ChildTemp : TTreeNode;
str.str1 : String;
begin
//如果是数据库抽的话
while Not Eof do
begin
Str := xxx;//xxx是你要加的文字
Temp := TreeTV.Items.Add(Nil,Str);
if Str=OperateID then
TreeTV.Selected := Temp;//这里是为了保持原点击节点再被显示用的
while not eof do
begin
str1:= xxx
ChildTemp := ITreeTV.Items.AddChild(Temp,str1);
if str1=OperateID2 then
TreeTV.Selected := ChildTemp;
end;
end;
end;
应该可以解决,但我是针对数据库的,你的情况自己参考吧。Top




