-A1
  ----a11
  ----a12
-B1
treeview中的树型结构如上;
现在我想用程序在B1这一节点添加一个子节点  实现后的结构如下:
-A1
  ----a11
  ----a12
-B1
 -----b1
用treeview.items[3]可取得B1节点,有没有更好的方式获得呢?因为A1 B1属于同级的节点,我想方便的获取同级的任一指定节点。

解决方案 »

  1.   

    看帮助!
    有很多方法,treeview很好用
      

  2.   

    可以通过设定节点属性的StateIndex的值后,通过StateIndex访问获取同级的任一指定节点。
      

  3.   

    treeview.Items.AddChild(节点,self.edit1.text)treeview.Selected.DeleteChildrenif treeview.Selected.Level=0 thentreeview.Selected.Expanded:=true
    .....
      

  4.   

    你可以在Treeview1的item属性项先设置节点的StateIndex的值:如
    节点 StateIndex值
    A1     0
    a11    1
    a12    2
    B1     3
    然后就可以用节点的StateIndex的值访问相应节点。
    // 现在我想用程序在B1这一节点添加一个子节点
    可以如下实现:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      iCount: integer;
    begin
      for iCount:= 0 to TreeView1.items.count - 1 do
      if TreeView1.Items.Item[iCount].StateIndex = 3 then
        TreeView1.Items.AddChild(TreeView1.Items.Item[iCount], 'b11');
      // 设置b11的StateIndex
      TreeView1.Items.Item[iCount].StateIndex:= 4; 
    end;
    //我想方便的获取同级的任一指定节点。
    你可以用节点的StateIndex判断并进行访问。如上面代码所示。
      

  5.   

    如果想访问A1或B1,可以
    for iCount:= 0 to TreeView1.items.count - 1 do
      if TreeView1.Items.Item[iCount].StateIndex = 0 then

      if TreeView1.Items.Item[iCount].StateIndex = 3 then
    其它的同样道理。
      

  6.   

    很简单的看我的var node:Tnode;
    添加同级
    procedure Tgudingzichanjiangouzhuwubiao.MenuItem1Click(Sender: TObject);
    begin
    node:=treeview1.Items.AddChild(treeview1.Selected.Parent,'新建部门');
    j:=1;
    end;添加下级;
    procedure Tgudingzichanjiangouzhuwubiao.N12Click(Sender: TObject);
    begin
    node:=treeview1.Items.AddChild(treeview1.Selected,'新建部门');
    j:=1;
    end;
    删除
    procedure Tgudingzichanjiangouzhuwubiao.N13Click(Sender: TObject);
    begin
    if MessageDlg('你确定要删除该项吗?',mtConfirmation,[mbYes,mbNo],0)=idYes then
    treeview1.Selected.Delete;
    j:=1;
    end;
      

  7.   

    很简单,
    var node:Tnode;
    添加同级
    procedure Tgudingzichanjiangouzhuwubiao.MenuItem1Click(Sender: TObject);
    begin
    node:=treeview1.Items.AddChild(treeview1.Selected.Parent,'新建部门');
    j:=1;
    end;
    下级procedure Tgudingzichanjiangouzhuwubiao.N12Click(Sender: TObject);
    begin
    node:=treeview1.Items.AddChild(treeview1.Selected,'新建部门');
    j:=1;
    end;procedure Tgudingzichanjiangouzhuwubiao.N13Click(Sender: TObject);
    begin
    if MessageDlg('你确定要删除该项吗?',mtConfirmation,[mbYes,mbNo],0)=idYes then
    treeview1.Selected.Delete;
    j:=1;
    end;
      

  8.   

    小武 谢谢你,看了你的代码,我现在的做法是,创建TreeNode对象,同级节点的我存放分层,通过增加删除treeNode节点实现.不过你那个方法好像要好一点.还有同时谢谢各位了.可惜分不多.