如何自动展开所有TTreeView节点?

发布于 2024-10-31 04:47:02 字数 61 浏览 1 评论 0原文

我想在应用程序启动时展开主窗体上的树。 我怎样才能做到呢?我找不到相应的属性。 C++ 生成器 2009。

I want to expand tree on main form when application starts.
How i can do it? I cant find corresponding property.
C++ builder 2009.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

假情假意假温柔 2024-11-07 04:47:02

您只需调用 FullExpand()在树视图上。

You simply need to call FullExpand() on the tree view.

彡翼 2024-11-07 04:47:02

添加树节点时,将其扩展属性设置为 true,

您将找到树节点对象的一个​​属性,在添加到节点列表之前将其设置为 true。

的 TreeView 方法,

您还可以找到一个名为 ExpandAll My Regards


尝试此代码

//this will expand all nodes of Level and their parents
procedure ExpandTree(Tree: TTreeView; Level: integer);

  procedure ExpandParents(Node: TTreeNode);
  var
    aNode : TTreeNode;
  begin
    aNode := Node.Parent;
    while aNode <> nil do begin
      if not aNode.Expanded then
        aNode.Expand(false);
      aNode := aNode.Parent;
    end;
  end;

var
  aNode : TTreeNode;
begin
  if Tree.Items.Count > 0 then begin
    aNode := Tree.Items[0];

    while aNode <> nil do begin
      if aNode.Level = Level then begin
        aNode.Expand(false);
        ExpandParents(aNode);
      end;
      aNode := aNode.GetNext;
    end;
  end;
end;

//this will expand the Node and it's parents
procedure ExpandNode(Node: TTreeNode);
var
  aNode : TTreeNode;
begin
  Node.Expand(false);

  aNode := Node.Parent;
  while aNode <> nil do begin
    if not aNode.Expanded then
      aNode.Expand(false);
    aNode := aNode.Parent;
  end;
end;

并查看参考
http://www.delphipages.com/forum/showthread.php?t=159148 问候

我的

When adding treenode make its expanded property to true

you will find a property for the treeNode Object, set it yo true before add to list of nodes.

and also you can find a method for the treeView called ExpandAll

My Regards


try this code

//this will expand all nodes of Level and their parents
procedure ExpandTree(Tree: TTreeView; Level: integer);

  procedure ExpandParents(Node: TTreeNode);
  var
    aNode : TTreeNode;
  begin
    aNode := Node.Parent;
    while aNode <> nil do begin
      if not aNode.Expanded then
        aNode.Expand(false);
      aNode := aNode.Parent;
    end;
  end;

var
  aNode : TTreeNode;
begin
  if Tree.Items.Count > 0 then begin
    aNode := Tree.Items[0];

    while aNode <> nil do begin
      if aNode.Level = Level then begin
        aNode.Expand(false);
        ExpandParents(aNode);
      end;
      aNode := aNode.GetNext;
    end;
  end;
end;

//this will expand the Node and it's parents
procedure ExpandNode(Node: TTreeNode);
var
  aNode : TTreeNode;
begin
  Node.Expand(false);

  aNode := Node.Parent;
  while aNode <> nil do begin
    if not aNode.Expanded then
      aNode.Expand(false);
    aNode := aNode.Parent;
  end;
end;

and see the reference
http://www.delphipages.com/forum/showthread.php?t=159148

My Regards

两个我 2024-11-07 04:47:02

有多种方法可以做到这一点。最简单的方法是

TreeView1.FullExpand;

在接受的答案中 -

if TreeView1.items.GetFirstNode <> nil then
  TreeView1.items.GetFirstNode.Expand(True);

或者或者

if TreeView1.items[0] <> nil then
  TreeView1.items[0].Expand(True);

如果您想从不是根节点的特定节点完全扩展,TTreeNode 上的 Expand 方法非常有用。

There a number of Ways of doing this. The easiest would be

TreeView1.FullExpand;

as in the accepted answer - Alternatively

if TreeView1.items.GetFirstNode <> nil then
  TreeView1.items.GetFirstNode.Expand(True);

or

if TreeView1.items[0] <> nil then
  TreeView1.items[0].Expand(True);

The Expand method on a TTreeNode is useful if you want to fully expand from a particular node that is not the root node.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文