关于TreeView控件选中时显示一个状态图片(100分)

X

xzh2000

Unregistered / Unconfirmed
GUEST, unregistred user!
我已经设置了TreeView控件的IMAGES属性,在ONCHANGE事件编写代码无效后
又在MOUSEDOWN中编写如下脚本
procedure Tfrmjssq.TreeView1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
Node:TTreeNode;
begin
Node:=TreeView1.GetNodeAt(x,y);
If Node<>nil then
If Node.ImageIndex=0 then
Node.ImageIndex:=1
else
Node.ImageIndex:=0;
TreeView1.Invalidate;
TreeView1.UpdateControlState;
TreeView1.Update;
end;
执行后当我点别一个NODE时,上一个节点显示一个状态图片,
怎么才能立即显示一个状态图片?
 
表用ImageIndex
用StateImages和StateIndex
 
给你句我在一个程序中写的:
procedure TMainForm.TableViewGetImageIndex(Sender: TObject;
Node: TTreeNode);
begin
if Node.HasChildren then//如果有子节点
begin
Node.ImageIndex:=0;
end
else
begin //没有子节点
Node.ImageIndex:=2;
Node.SelectedIndex:=3;
end;
if Node.Expanded then
Node.ImageIndex:=1;

//Node.StateIndex:=Node.ImageIndex;
Node.SelectedIndex:=Node.ImageIndex;
if Node.Level<>0 then
Node.SelectedIndex:=3;
end;
 
将dhycq的代码放入OnChange事件中,
问题基本解决,其他问题本人已经想好办法啦。
谢谢两位!!!
 
顶部