private void OnComponentRemoving(object sender, ComponentEventArgs e)
        {
            IComponentChangeService c = (IComponentChangeService)GetService(typeof(IComponentChangeService));
            StatusItem    item        = null;
            IDesignerHost h           = (IDesignerHost)GetService(typeof(IDesignerHost));
            int           i           = 0;

            //If the user is removing a button
            if (e.Component is StatusItem)
            {
                item = (StatusItem)e.Component;
                if (Parent.Items.Contains(item))
                {
                    c.OnComponentChanging(Parent, null);
                    Parent.Items.Remove(item);
                    c.OnComponentChanged(Parent, null, null, null);
                    return;
                }
            }

            //If the user is removing the control itself
            if (object.ReferenceEquals(e.Component, Parent))
            {
                for (i = Parent.Items.Count - 1; i >= 0; i += -1)
                {
                    item = Parent.Items[i];
                    c.OnComponentChanging(Parent, null);
                    Parent.Items.Remove(item);
                    h.DestroyComponent(item);
                    c.OnComponentChanged(Parent, null, null, null);
                }
            }

            Parent.DrawItems();
        }
        // Adds a new statusitem to the collection
        public int Add(StatusItem item)
        {
            int i = 0;

            i           = List.Add(item);
            item.Parent = Parent;
            Parent.DrawItems();

            return(i);
        }