treeview 对应ImageList1中有三个图index为0,1,2,我想做到当treeview的节点有子节点是用图0,没有子节点时用图2,当有子节点的节点被点击展开时该节点用图1,节点折叠时还原用图0,就想资源管理器一样,节点展开时是一本打开的书,不打开事是折叠的书,树控件的最终节点是另一个图,请问程序里怎么实现

解决方案 »

  1.   

    //OnGetImageIndex事件
    procedure TForm1.TreeView1GetImageIndex(Sender: TObject; Node: TTreeNode);
    begin
      if Node = nil then Exit;  if not Node.HasChildren then
        Node.ImageIndex := 2       //没有子节点时用图2
      else if Node.Expanded then
        Node.ImageIndex := 1       //有子节点的节点被点击展开时该节点用图1 
      else Node.ImageIndex := 0    //treeview的节点有子节点而且没有展开时用图0end;//OnGetSelectedIndex事件
    procedure TForm1.TreeView1GetSelectedIndex(Sender: TObject;
      Node: TTreeNode);
    begin
      Node.SelectedIndex := Node.ImageIndex;
    end;