日期:2014-05-18  浏览次数:21118 次

c# tabcontrol控件标签如何隐藏?
我想做成卡巴斯基、nod32、GHOST 2003等那样的界面,就是左边一些按钮,右边是tabcontrol控件。当我点击左边一个按钮时,右边显示tabcontrol的一页,且这一页的标签要隐藏,就是说把原来用标签换页的方式改为用按钮事件代码实现,请问如何实现。
注意:只是隐藏标签,并不是清除一页,有些人数用tabcontrol_order.TabPages.Remove(TabPage_name)是断不可取的,不是这个意思。

------解决方案--------------------
不要用TabControl,用Panel吧。
------解决方案--------------------
多 tabpage 的可见性好似只有那个 remove 的办法
remove 是从 tabcontrol 中去除, tabpage 还在的, 还可以再次加进去

你的方式其实也可以使用多个 panel 在右边来实现
根据左边的选择, 来决定右边哪个panel 可见并且Dock.fill
------解决方案--------------------
自己写一个控件,控件组合多个panel或其它的container控件,然后公布方法或事件出来,一切搞定;
------解决方案--------------------
为什么不用MDI或者SplitContainer
------解决方案--------------------
自带的控件是不能实现这个功能的,你非要实现只有重写这个控件。或者换其它方式。
------解决方案--------------------
选中用:tabControl1.SelectedIndex = 3;
隐藏标签可以考虑将其标签大小设置为0或最小
------解决方案--------------------
哎,上面我回复错了,不好意思,不是这个帖子的。

其实lz这个问题,可以用panel+form来实现啊。
每页定义成一个form(toplevel设置成false)
点每个按钮的时候先清除panel内的所有control,然后再增加相应的form就行了。
------解决方案--------------------
教你一个很简单的办法,画一个panel,把tabcontrol放进去,填满,四边矛定,然后把tabcontrol的location设置成负的,直到上面的标签被panel的边框挡住为止
------解决方案--------------------
C# code

public class TabSwitch : TabControl
    {
        public TabSwitch()
            : base()
        {
        }

        public override Rectangle DisplayRectangle
        {
            get
            {
                if (!DesignMode)
                    return ClientRectangle;
                else
                    return base.DisplayRectangle;
            }
        }
    }

------解决方案--------------------

Apperarance 属性:Faltbuttons
SizeMode属性:Fixed
各个TabPage的Text :空
ItemSize : Width=0;Height=1;//Height好象不能设为0,但也就那么一丁点儿,不影响吧

厉害吧~~给分吧~~~