我的程序中要动态修改treeview,添加删除及修改操作,都要用语句来实现,但当我要添加第二个父节点下的子节点时,却无法定位这个父节点,第一个父节点可以用getfistnode来取得,其余的父节点的定位语句哪位高手知道帮帮忙,小弟先卸了.

解决方案 »

  1.   

    下面这些函数都可以用啊:function GetPrev: TTreeNode;
    function GetNext: TTreeNode;
    function GetPrevChild(Value: TTreeNode): TTreeNode;
    function GetNextChild(Value: TTreeNode): TTreeNode;
      

  2.   

    得到第一个父结点后就知道了此结点的level了啊,你再遍历一下,查看每个结点的level是否和先前得到的一样,只要找到,那那个结点就是第二个父结点了.
      

  3.   

    no no no 
    有一个函数就是定位到下一条兄弟结点的。
    就是没有记住。形式也是GetXXX。
      

  4.   

    function GetNextChild(Value: TTreeNode): TTreeNode;
      

  5.   

    用getnextsibling下一个同级节点。
      

  6.   

    treeview的节点的index是变化的,查找一个节点很是麻烦,按顺序的话还好办,有很多函数,但动态创建时就不好定位GetNextSibling是搜索下一个同级节点
    GetNext是搜索紧跟当前节点的下一个节点,可能是下一级节点
    不怕麻烦的话,在创建一个节点时,定义个tn:TTreeNode变量记录下来,再创建该节点的子节点就可以用TreeView1.Items.AddChild(tn,'NodeName');
    在创建节点时,在tag中加入自定义编号,遍历搜索时也很有用,当然也可以用节点名来作判断;
    节点的Data指针也很有用,关联时很有用;