TTreeView控件的名称为tvAreaManage,属性AutoExpand=true.窗口的OnShow事件中,调用一次控件的FullExpand方法,全部展开,代码如下:
void __fastcall TForm1::tvAreaManageCollapsing(TObject *Sender,
TTreeNode *Node, bool &AllowCollapse)
{
AllowCollapse = false;
}
//---------------------------------------------------------------------------
//也可以用tvAreaManageMouseDown事件
void __fastcall TForm1::tvAreaManageMouseUp(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
TPoint P;
P.x = X;
P.y = Y;
TRect R;
TTreeNode * Node;
m_bAllow = false;
Node = tvAreaManage->GetNodeAt(X, Y);
if ((Node != NULL) && Node->HasChildren )
{
R = Node->DisplayRect(True);
if (PtInRect(R, P))
{
m_bAllow = false;
Node->Expanded = false;
}
else
{
m_bAllow = true;
Node->Expanded = !Node->Expanded;
}
}
}