c# tabcontrol 隐藏索引标签,代码是现成的组件

using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;

namespace Dotnetrix.Samples.CSharp
{
    [ToolboxBitmap(typeof(System.Windows.Forms.TabControl))]
    public class TabControl : System.Windows.Forms.TabControl
    {
        private bool m_HideTabs = false;
        
        [DefaultValue(false)]
        [RefreshProperties(RefreshProperties.All)]
        public bool HideTabs
        {
            get{return m_HideTabs;}
            set
            {
                if (m_HideTabs == value) return;
                m_HideTabs = value;
                if (value == true) this.Multiline = true;
                this.UpdateStyles();
            }
        }
        
        [RefreshProperties(RefreshProperties.All)]
        public new bool Multiline 
        {
            get
            {
                if (this.HideTabs) return true;
                return base.Multiline;
            }
            set
            {
               if (this.HideTabs)
                    base.Multiline = true;
                else
                    base.Multiline = value;
            }
        }
        
        public override System.Drawing.Rectangle DisplayRectangle
        {
            get
            {
                if (this.HideTabs)
                    return new Rectangle(0, 0, Width, Height);
                else
                {
                    int tabStripHeight, itemHeight;

                    if (this.Alignment <= TabAlignment.Bottom)
                        itemHeight = this.ItemSize.Height;
                    else
                        itemHeight = this.ItemSize.Width;

                    if (this.Appearance == TabAppearance.Normal)
                        tabStripHeight = 5 + (itemHeight * this.RowCount);
                    else
                        tabStripHeight = (3 + itemHeight) * this.RowCount;

                    switch (this.Alignment)
                    {
                        case TabAlignment.Bottom:
                            return new Rectangle(4, 4, Width - 8, Height - tabStripHeight - 4);
                        case TabAlignment.Left:
                            return new Rectangle(tabStripHeight, 4, Width - tabStripHeight - 4, Height - 8);
                        case TabAlignment.Right:
                            return new Rectangle(4, 4, Width - tabStripHeight - 4, Height - 8);
                        default:
                            return new Rectangle(4, tabStripHeight, Width - 8, Height - tabStripHeight - 4);
                    }

                }
                
            }
            
        }
        
    }
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值