如何在C++ Builder中隐藏PageControl选项卡的标题栏?

5

我想知道如何隐藏PageControl组件中TabSheets的头部。我希望能够创建一个构建您的冠军的程序,您可以在页面上选择一些内容。TabSheets将会每隔10秒钟就会被定时器更改。在Google上,我只能找到如何隐藏TabSheet(包括内容)。我只想隐藏TabSheets的标题,例如TabSheet1等等。

我正在使用C++ Builder。

问候,

1个回答

5
你可以隐藏 TPageControl 的每个页面(TabSheetTabVisible 属性),即使如此,你仍然可以通过更改页面控件的 ActivePageActivePageIndex 属性在代码中显示 TabSheet
计时器可以调用 SelectNextPage 方法来编程更改活动页面:
PageControl1->SelectNextPage(true, false);

编辑

一个简单的表单(Form1),其中包含一个 TPageControl (如设计师中所示):

TPageControl in the designer

隐藏标题的代码:

void __fastcall TForm1::FormShow(TObject *Sender)
{
  for (int i(0); i < PageControl1->PageCount; ++i)
    PageControl1->Pages[i]->TabVisible = false;

  // You can show the TabSheet programmatically changing the active page.
  PageControl1->ActivePage = TabSheet1;
}

选择下一页的代码:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  PageControl1->SelectNextPage(true, false);
}

巫师般的效果(在运行时):

enter image description here


近期版本的C++Builder有一个TCardPanel控件。它是一组页面,类似于TPageControl,但没有选项卡。您一次只能显示一页(每个页面都托管自己的控件),并且它内置了手势切换页面的支持。

是的,我知道。我调用SelectNextPage方法。但我仍然有TabSheet的标题。我只想要带有内容但没有标题的Sheet,例如TabSheet1。 - Lukas
现在我没有选项卡页的标题,也看不到选项卡页的内容。 - Lukas
@Lukas 我添加了一个小例子。 - manlio
1
仅供记录 - 直到我设置了PageControl1->ActivePageIndex = 0; (或者像上面那样设置PageControl1->ActivePage = TabSheet1;),这才对我起作用。 - Reversed Engineer
这在 Delphi 5 中对我也有效。 - pyfyc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接