问题
I want to expand tree on main form when application starts. How i can do it? I cant find corresponding property. C++ builder 2009.
回答1:
You simply need to call FullExpand() on the tree view.
回答2:
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
回答3:
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.
来源:https://stackoverflow.com/questions/5612721/how-to-auto-expand-all-ttreeview-nodes