/// <summary>
        /// Replaces combobox control
        /// </summary>
        /// <param name="control">The replaced control</param>
        /// <param name="num">Number of comboboxes</param>
        /// <returns>Replacing result</returns>
        public static Control Replace(Control control, int num)
        {
            if (num == 0)
            {
                if (control is Panel)
                {
                    return(control);
                }
                Control p   = Remove(control);
                Panel   pan = Panel;
                p.Controls.Add(pan);
                return(pan);
            }
            UserControlHeteroContainer ucc = null;

            if (control is UserControlComboboxList)
            {
                ucc = control as UserControlHeteroContainer;
                if (ucc.Count == num)
                {
                    return(ucc);
                }
                ucc.Count = num;
                return(ucc);
            }
            Control par = Remove(control);

            ucc       = new UserControlHeteroContainer();
            ucc.Count = num;
            ucc.Dock  = DockStyle.Fill;
            par.Controls.Add(ucc);
            return(ucc);
        }
        private void Add()
        {
            int n = list.Count;
            UserControlHeteroContainer fin = list[n - 1];
            UserControlHeteroContainer uc  = new UserControlHeteroContainer(list);

            for (int i = 0; i < n; i++)
            {
                list[i].Height += height;
            }
            uc.Dock           = DockStyle.Fill;
            uc.labelText.Font = labelText.Font;
            fin.panelCenter.Controls.Add(uc);
        }
        /// <summary>
        /// Replaces control by new texts
        /// </summary>
        /// <param name="control">The control</param>
        /// <param name="texts">Texts</param>
        /// <returns>Replacing result</returns>
        public static Control Replace(Control control, string[] texts)
        {
            if (texts == null)
            {
                return(Replace(control, 0));
            }
            Control c = Replace(control, texts.Length);

            if (c is UserControlHeteroContainer)
            {
                UserControlHeteroContainer uc = c as UserControlHeteroContainer;
                uc.Texts = texts;
            }
            return(c);
        }
        void Remove()
        {
            if (list.Count == 1)
            {
                return;
            }
            int n = list.Count;
            UserControlHeteroContainer fin = list[n - 1];
            UserControlHeteroContainer pre = list[n - 2];

            pre.panelCenter.Controls.Remove(fin);
            list.Remove(fin);
            for (int i = 0; i < list.Count; i++)
            {
                list[i].Height -= height;
            }
        }