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

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

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

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

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

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

最后, 建议的解决方案

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

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

你想的更简单,你只需将面板的窗口拖到上面,这样就会在表单之外。

实现相同(或类似)的另一种方法是:您可以从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); 

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

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