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

问题描述 投票:28回答:5

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

c# .net winforms
5个回答
86
投票

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

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

4
投票

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

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

最后,建议的解决方案:

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

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


-1
投票

你想的更容易,你只需将面板的窗口向上拖动,因此将在窗体之外。


-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);

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


-1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.