如何在treeview中的一个节点展开的同时变化它左边的图标,我在它的onexpanding事件中写如下代码怎么总是失去焦点的时候图标才改变呢?
    tv_zhb.Selected.ImageIndex :=1   ;
    tv_zhb.Refresh ;
怎样才能在展开的同时同步改变,谢谢!

解决方案 »

  1.   

    Imagelist1里放两幅图片,设序号分别为0,1设置节点的ImageIndex为0,SelectedIndex为1,这样,节点没有被选中时显示第一副图,被选中时显示第二副图。根本就不用在程序中修改ImageIndex。方法有两种:编程时当添加节点的对话框出现时,右下角可以填这两个值
    在程序中动态添加节点时,Node1.ImageIndex:=0; Node1.SelectedIndex:=1; 就行了
      

  2.   

    oracle_lover(数据库情人)的方法是在节点选中时改变图标,而不是展开时改变给你个例子//节点展开的事件
    procedure TForm1.TreeView1Expanding(Sender: TObject; Node: TTreeNode;
      var AllowExpansion: Boolean);
    begin
      Node.ImageIndex:=11;
      Node.SelectedIndex:=11;
    end;//节点合拢的事件
    procedure TForm1.TreeView1Collapsing(Sender: TObject; Node: TTreeNode;
      var AllowCollapse: Boolean);
    begin
      Node.ImageIndex:=10;
      Node.SelectedIndex:=10;
    end;
      

  3.   

    呵呵,设置好 Node 的 ImageIndex 和 SelectedIndex。
    数据库已经说过了。