怎样使treeview双击的时候下级节点仍然保持展开状态和怎样使父级节点图标显示正常?
各位论坛上的朋友,想向各位大虾请教TreeView的两个题题,请各位大虾赐教,谢谢!!!
1、当TreeView的下级节点展开,如果你双击当前的节点,每一次双击都会将所有节点缩为当前的一个节点,再双击的话就又再展开,再双击又再缩,如果次循环,有无有办法,假如当前节点的下级节点已经展开,在当前节点双击的时候,使下级节点仍然保持展开状态,直至你单击节点的+号或-号,才进行合拢或展开的操作?
2、假如有树如下,在该窗体的ImageList里面有三个图标,分别表示合拢(0)、展开(1)、子级(2)状态的图标,然后代码如下,有一个很奇怪的现象,如果你在“--SUB_A”这个节点,点击其左边的加号,使其的下级节点展开,这时,--SUB_A的图标就会变成一个奇怪的图标,是ImageList里面不存在的图标,好像是合拢(0)和展开(1)图标的合并图标,直至你点击节点“SUB_SUB_A”然后再点击父节点“--SUB_A”,这时再点击它的子节点“SUB_SUB_A”这时候“--SUB_A”的图标显示状态就完全正常了,请问怎样才能解决这个问题呢?
procedure TFrm_KaoQinRiBaoB.RzTreeView1GetImageIndex(Sender: TObject;
Node: TTreeNode);
begin
if Node.HasChildren then
Node.ImageIndex := 0
else
Node.ImageIndex := 2;
if Node.Expanded then
Node.ImageIndex := 1;
end;
--A
--SUB_A
SUB_SUB_A
[解决办法]
1.看看expanding,expanded,Onclick,OnDbClick事件的执行顺序
2.能够Expanded的都是HasChildren的
[解决办法]
检查Node的初始ImageList绑定顺序
[解决办法]
可以设置标志,在双击的时候,设置标志位,然后在expanding中判断就可以了
[解决办法]
procedure TfrmModule.tvMainCollapsing(Sender: TObject; Node: TTreeNode;
var AllowCollapse: Boolean);
begin
AllowCollapse := False;
end;