我有一个tabcontrol,用于在应用程序中显示多个图像文件。当只显示一个标签页时,我想删除标题页标题,因此我可以将该屏幕空间用于图像。 (这类似于在Firefox中取消选择“始终显示标签栏”。)
这可能与tabcontrol有关吗?或者,当只打开一个文件(标签)时,我最好使用面板控件吗?
答案 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)
尝试使用此处给出的答案:) ..设置选项卡的区域
答案 2 :(得分:0)
我不记得任何隐藏标签标签的方法。我的建议:
在面板中显示标签内容。当只有一个标签时,移动面板以替换tabcontrol或那种性质的东西。