Tabcontrol:如何删除tabpage标题?

时间:2009-12-01 04:40:04

标签: .net winforms tabcontrol

我有一个tabcontrol,用于在应用程序中显示多个图像文件。当只显示一个标签页时,我想删除标题页标题,因此我可以将该屏幕空间用于图像。 (这类似于在Firefox中取消选择“始终显示标签栏”。)

这可能与tabcontrol有关吗?或者,当只打开一个文件(标签)时,我最好使用面板控件吗?

3 个答案:

答案 0 :(得分:6)

是的,这是可能的。在项目中添加一个新类并粘贴下面显示的代码。编译。将新控件从工具箱顶部拖放到表单上。

using System;
using System.Windows.Forms;

public class MyTabControl : TabControl {
  private int mPages = 0;
  private void checkOnePage() {
    if (IsHandleCreated) {
      int pages = mPages;
      mPages = this.TabCount;
      if ((pages == 1 && mPages > 1) || (pages > 1 && mPages == 1))
        this.RecreateHandle();
    }
  }
  protected override void OnControlAdded(ControlEventArgs e) {
    base.OnControlAdded(e);
    checkOnePage();
  }
  protected override void OnControlRemoved(ControlEventArgs e) {
    base.OnControlRemoved(e);
    checkOnePage();
  }
  protected override void WndProc(ref Message m) {
    // Hide tabs by trapping the TCM_ADJUSTRECT message
    if (m.Msg == 0x1328 && !DesignMode && this.TabCount == 1) m.Result = (IntPtr)1;
    else base.WndProc(ref m);
  }
}

答案 1 :(得分:1)

尝试使用此处给出的答案:) ..设置选项卡的区域

Building C# .NET windows application with multiple views

答案 2 :(得分:0)

我不记得任何隐藏标签标签的方法。我的建议:

在面板中显示标签内容。当只有一个标签时,移动面板以替换tabcontrol或那种性质的东西。