public override void Initialize(IComponent component)
        {
            _userTabControl = component as UserTabControl;

            if (_userTabControl == null)
            {
                DisplayError(new ArgumentException("Tried to use the UserTabControlDesigner with a class that does not inherit from UserTabControl.", "component"));
            }

            base.Initialize(component);

            IComponentChangeService compChangeServ = (IComponentChangeService)GetService(typeof(IComponentChangeService));

            if (compChangeServ != null)
            {
                compChangeServ.ComponentRemoved += new ComponentEventHandler(ComponentRemoved);
            }
        }
 /// <summary>
 /// Creates a new instance of the
 /// <see cref="UserTabControl.ScrollerThread"/> class.
 /// </summary>
 /// <param name="amount">The amount to scroll.</param>
 /// <param name="control">The control to scroll.</param>
 public ScrollerThread(int amount, UserTabControl control)
 {
     this.tabControl = control;
     this.amount = new object[] { amount };
     scroller = new ScrollTabsDelegate(tabControl.ScrollTabs);
 }
 /// <summary>
 /// Creates a new instance of the
 /// <see cref="UserTabControl.ControlCollection"/> class with 
 /// the specified <i>owner</i>.
 /// </summary>
 /// <param name="owner">
 /// The <see cref="UserTabControl"/> that owns this collection.
 /// </param>
 /// <exception cref="ArgumentNullException">
 /// Thrown if <i>owner</i> is <b>null</b>.
 /// </exception>
 /// <exception cref="ArgumentException">
 /// Thrown if <i>owner</i> is not a <see cref="UserTabControl"/>.
 /// </exception>
 public ControlCollection(Control owner)
     : base(owner)
 {
     if (owner == null)
     {
         throw new ArgumentNullException("owner", "Tried to create a UserTabControl.ControlCollection with a null owner.");
     }
     this.owner = owner as UserTabControl;
     if (this.owner == null)
     {
         throw new ArgumentException("Tried to create a UserTabControl.ControlCollection with a non-UserTabControl owner.", "owner");
     }
     monitor = new EventHandler(this.owner.ChildTabTextChanged);
 }