有Treeview1,我想根据string: '1'来找到reeview1中的'仓房1'结点,并把当前选中结点设为该结点,该怎么写代码

解决方案 »

  1.   

    也就是说我已知道结点的text,怎样把它设为选中状态
      

  2.   

    procedure TForm1.Btn_CreateTreeClick(Sender: TObject);
    var
      ID : integer;
      RootNode, Node : TTreeNode;
    begin
      TreeView1.Items.Clear;
      RootNode := TreeView1.Items.AddFirst(nil, '所有仓房');
      for ID := 1 to 5 do
        begin
        Node := TreeView1.Items.AddChild(RootNode, '仓房'+IntToStr(ID));
        Node.Data := Ptr(ID);
        end;
    end;procedure TForm1.Btn_TestClick(Sender: TObject);
    var
      S : string;
      ID : integer;
    begin
      S := '2';
      for ID := 0 to TreeView1.Items.Count-1 do
        if S = IntToStr(integer(TreeView1.Items[ID].Data)) then
          begin
          TreeView1.Select([TreeView1.Items[ID]]);
          TreeView1.SetFocus;
          end;
    end;
      

  3.   

    你说的是可以的,我还想问个问题,我的Treeview1有五级,怎样获取第一级、第二级 、第三级....等结点,我对那些Items的概念有些模糊
      

  4.   

    这个需要在建树时要有一个整体的构思。主要是这样:给一个节点赋予ID,赋予ParentID,通过这两个信息就可以确定一个节点。
    如果单纯地确定某个节点是第几级,其实好办:反复地查找其Parent的Parent节点,最终找到Parent节点是nil,那就表示已经到根节点了。