我做了点击一个节点A,就动态去数据库中找对应的值,取出来赋给A的子节点,点击节点B,同样添加B1,B2为B的子节点..   但出现问题就是,前面的'+'号一开始是不见的,要点击了才出现...怎么能让有子节点的node前面都显示'+'号!??  急..谢谢!

解决方案 »

  1.   

    楼主可以在建Treeview时就先给A添加一个字节点。这样一开始显示的时候就会有个+号。
    然后在点击事件里先清空子节点然后再从数据库里取出你要的再添加上去就行了。
    TreeView1.Items.Clear
    ...
    //添加你要的节点 
    TreeView1.Items.Add(...) 
      

  2.   

    TreeView的ShowButtons属性应为true;
      

  3.   

    Sorry,不是这个问题,呵呵不过一楼的可以考虑
      

  4.   

    用个折中的方法吧,开始时先赋一个子节点进去:
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      {初始时就赋一个进去,不然它不出+号}
      tv.Items.AddChild(tv.Items.AddFirst(nil, '根节点'), '正在加载...')
    end;procedure TForm1.tvExpanded(Sender: TObject; Node: TTreeNode);
    var
      i: Integer;
    begin
      for i := 0 to Node.Count - 1 do
        Node.Item[i].Delete;  {用Node.DeleteChildren则不行}
      tv.Items.AddChild(Node, '替代节点');  {这里写入你的添加代码}
    end;
      

  5.   

    weizi2000(秋风啊) ( )...node那里报错了/!  没有node这个属性啊!!
      

  6.   

    我有很多啊
    A
      A01
         A0101
         A0201
      A02
      A03
    B
      B01
      B02
    C
    D ...
      怎么在每个节点前都加如'+'啊??
      

  7.   

    NODE是Expanded事件的一个参数,不是属性。
      

  8.   

    怎么在每个节点前都加如'+'啊??--
    你只要在最末级加就可以了,非末级都有'+',用Node.HasChildren来判断