如何在Windows窗体中创建没有选项卡标题的选项卡控件?

时间:2012-04-25 13:20:28

标签: c# .net winforms

我使用Tab Control创建了一个Windows窗体,但它有一个标题。我想隐藏它。我无法使用Tab Control的任何属性来执行此操作。是否有任何属性被定义用于隐藏Tab控件的选项卡标题而不通过代码?

5 个答案:

答案 0 :(得分:87)

使用以下代码隐藏选项卡或在设计中设置这些属性。

    tabControl.Appearance = TabAppearance.FlatButtons;
    tabControl.ItemSize = new Size(0, 1);
    tabControl.SizeMode = TabSizeMode.Fixed;

答案 1 :(得分:4)

您希望没有该功能的选项卡面板允许用户在它们之间切换,因此我想您要创建几个单独的控件集,以便一次向用户显示一个。您可以通过多种方式实现此目的(如果您认为适合您的情况,可以选择其中一种方式):

  • 使用多个Panel控件而不是TabControl中的多个标签,但是,在设计器中很难工作,因为所有控件都可见
  • 使用不同的Form而不是标签来保持布局部分分开。它可以,但您可能不想使用多个Form,因此它取决于具体情况。

最后,建议的解决方案

  • UserControl中封装每组控件。这允许您分别保留每个布局,这样您就可以轻松地设计每个布局,而不会妨碍其他控件;)。处理每个布局的代码也将被分开。然后只需在表单中拖动这些控件,并使用适当的设置它们的可见性来显示您想要的那个。

如果这些建议都不适合你,请告诉我,我可以寻找其他可能的解决方案。

答案 2 :(得分:-1)

您可以更轻松地思考,只需拖动面板的窗口,就可以在窗体外面。

答案 3 :(得分:-1)

实现相同(或类似)的另一种方法是:您可以从TabControl.TabPages集合中删除选项卡,然后添加要显示的选项卡。

在表单初始化期间,我删除了标签(因此我可以轻松管理它们),在某些控制事件中(如按钮点击)我会显示用户必须看到的标签。

类似的东西:

// During form load:
ctrTab.TabPages.Clear();

// ...... 

// During button click or some other event:
if(rbSend.Checked)
    ctrTab.TabPages.Add(pgSend);
else
    ctrTab.TabPages.Add(pgReceive);

通过这种方式,用户仍然可以看到标题选项卡,但是作为控件组的标题,他无法更改/切换当前活动选项卡。

答案 4 :(得分:-1)

使用DrawMode:OwnerDrawFixed将隐藏TabPage标题文本DrawMode : OwnerDrawFixed