Treeview的问题,急(100分)

  • 主题发起人 主题发起人 robinswp
  • 开始时间 开始时间
R

robinswp

Unregistered / Unconfirmed
GUEST, unregistred user!
我在Treeview的OnClick事件中,有时当点击某个节点(一般是非叶节点)或点击到某个非叶节点
的+号或-号上,TreeView.Selected会选中某一个其它的节点.
 
不会吧,有这种事?
 
你看一下我的程序可能有帮助的。
procedure Tfrm_sqlexplore.TV1Click(Sender: TObject);
var
list:Tstringlist;
node2:Ttreenode;
i:integer;
listitem:Tlistitem;
begin
if tv1.Selected <> nil then
begin
if tv1.Selected.Level=1 then
begin
lv1.Items.BeginUpdate;
lv1.Items.Clear;
list:=Tstringlist.create();
session.GetAliasParams(tv1.selected.Text,list);
for i:=0 to list.Count-1 do
begin
listitem:=lv1.Items.Add();
listitem.Caption:=copy(list,1,pos('=',list)-1);
listitem.SubItems.add(copy(list,pos('=',list)+1,length(list)));
end;
lv1.items.endupdate;

end;
 
我的OnClick事件如下:
AssignFile(F,GetCurrentDir+'/debug.txt');
Append(F);
Writeln(F,'---------点击业务树---------------');
Writeln(F,DateTimeToStr(Now));
if TvOption.Selected = nil then Writeln(F,'无节点内容')
else Writeln(F,'节点内容:'+TVOption.Selected.text);// GetNodeAt(SelectNodeX,SelectNodeY).Text);
Writeln(F,'CCallTx:'+CCallTx);
CloseFile(F);
而出现的那个非点击的节点一般是TreeView当前显示的节点中的最上面一个.
难道就只有我一个人碰到这个问题.
 
没有问题呀,每次记录的都是正确的呀!
 
这是WINDOWS的标准,当SELECTED<>NIL时,如点击的区域不是树节点,则SELECTED还是原来的节点
SELECTED=NIL,则还是当点击时TREEVIEW还是认为SELECTED的是当前最上面的一个节点。可以看看
资源管理器的树形控件。最好用DBCLICK事件来处理。
 
多人接受答案了。
 
后退
顶部