public virtual ITabPageItem this[int index]
 {
     get
     {
         ITabButtonItem item = this.m_Owner.TabButtonItemCollection[index] as ITabButtonItem;
         if (item == null)
         {
             return(null);
         }
         return(item.pTabPageItem);
     }
     set
     {
         if (this.Locked)
         {
             return;
         }
         //
         if (!this.Filtration(value))
         {
             return;
         }
         //
         this.RemoveAt(index);
         this.Insert(index, value);
     }
 }
        void BaseItems_ItemAdded(object sender, ItemEventArgs e)
        {
            ITabButtonItem pTabButtonItem = this.SelectTabButtonItem;

            if (pTabButtonItem == null)
            {
                this.TabButtonItemSelectedIndex = 0;
            }
        }
        void BaseItems_ItemRemoved(object sender, ItemEventArgs e)
        {
            if (this.BaseItems.Count <= 0)
            {
                return;
            }
            //
            ITabButtonItem pTabButtonItem = this.SelectTabButtonItem;

            if (pTabButtonItem == null)
            {
                this.TabButtonItemSelectedIndex = 0;
            }
        }
        protected override void OnMouseUp(System.Windows.Forms.MouseEventArgs mevent)
        {
            base.OnMouseUp(mevent);
            //
            ITabControl pTabControl = this.m_Owner.TryGetTabControl();

            if (pTabControl == null)
            {
                return;
            }
            ITabButtonItem pTabButtonItem = this.m_Owner.SelectTabButtonItem;

            if (pTabButtonItem == null)
            {
                return;
            }
            pTabControl.RemoveTabPage(pTabButtonItem.pTabPageItem);
        }
        public void RemoveAt(int index)
        {
            if (this.Locked)
            {
                return;
            }
            //
            ITabButtonItem item = this.m_Owner.TabButtonItemCollection[index] as ITabButtonItem;

            if (item == null)
            {
                return;
            }
            //
            this.m_Owner.TabButtonItemCollection.RemoveAt(index);
            this.m_Owner.TabPageList.Remove(item.pTabPageItem);
            //
            this.OnItemRemoved(new ItemEventArgs(item.pTabPageItem));
        }
 protected override void OnMouseDown(System.Windows.Forms.MouseEventArgs mevent)
 {
     this.BaseItems.Clear();
     foreach (BaseItem one in this.m_Owner.BaseItems)
     {
         BaseButtonItem item = new BaseButtonItem();
         item.Name = one.Name;
         item.Text = one.Text;
         item.Tag  = one;
         ITabButtonItem pTabButtonItem = one as ITabButtonItem;
         if (pTabButtonItem != null)
         {
             item.Image   = pTabButtonItem.Image;
             item.Checked = pTabButtonItem.IsSelected;
         }
         item.MouseClick += new System.Windows.Forms.MouseEventHandler(Item_MouseClick);
         this.BaseItems.Add(item);
     }
     //
     base.OnMouseDown(mevent);
 }
 /// <summary>
 /// 用来检测和修复该集合
 /// </summary>
 public void CheckAndRepair()
 {
     for (int i = this.m_Owner.TabButtonItemCollection.Count - 1; i >= 0; i--)
     {
         ITabButtonItem pTabButtonItem = this.m_Owner.TabButtonItemCollection[i] as ITabButtonItem;
         if (pTabButtonItem != null &&
             !this.m_Owner.TabPageList.Contains(pTabButtonItem.pTabPageItem))
         {
             this.m_Owner.TabButtonItemCollection.RemoveAt(i);
         }
     }
     //
     for (int i = this.m_Owner.TabPageList.Count - 1; i >= 0; i--)
     {
         ITabPageItem pTabPageItem = this.m_Owner.TabPageList[i] as ITabPageItem;
         if (pTabPageItem != null &&
             !this.m_Owner.TabButtonItemCollection.Contains(pTabPageItem.pTabButtonItem as BaseItem))
         {
             this.m_Owner.TabPageList.RemoveAt(i);
         }
     }
 }
        void Item_MouseClick(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            BaseButtonItem item = sender as BaseButtonItem;

            if (item == null)
            {
                return;
            }
            ITabButtonItem pTabButtonItem = item.Tag as ITabButtonItem;

            if (pTabButtonItem == null)
            {
                return;
            }
            pTabButtonItem.Selected();
            if (this.m_Owner.AutoShowOverflowTabButton && pTabButtonItem.Overflow)
            {
                IBaseItem5 pBaseItem5 = pTabButtonItem as IBaseItem5;
                if (pBaseItem5 != null)
                {
                    pBaseItem5.MoveTo(0);
                }
            }
        }
 public RibbonPageItem()
 {
     this.m_pTabButtonItem = new RibbonPageTabButtonItem(this);
 }