protected override void OnPaint(PaintEventArgs e)
        {
            Bitmap   B = new Bitmap(Width, Height);
            Graphics G = Graphics.FromImage(B);

            base.OnPaint(e);

            try
            {
                SelectedTab.BackColor = mainBackground;
            }
            catch
            {
            }

            G.Clear(topBackground);
            G.SmoothingMode = SmoothingMode.HighQuality;

            switch (ColorScheme)
            {
            case ColorSchemes.DarkGray:
                activeTabColor = Color.FromArgb(10, 10, 10);
                _textColor     = Color.White;
                break;

            case ColorSchemes.Green:
                activeTabColor = Color.FromArgb(94, 165, 1);
                _textColor     = Color.White;
                break;

            case ColorSchemes.Blue:
                activeTabColor = Color.FromArgb(0, 97, 166);
                _textColor     = Color.White;
                break;

            case ColorSchemes.White:
                activeTabColor = Color.FromArgb(245, 245, 245);
                _textColor     = Color.FromArgb(36, 36, 36);
                break;

            case ColorSchemes.Red:
                activeTabColor = Color.FromArgb(170, 0, 0);
                _textColor     = Color.White;
                break;
            }

            for (int i = 0; i <= TabPages.Count - 1; i++)
            {
                Rectangle TabRect = new Rectangle(GetTabRect(i).X + 3, GetTabRect(i).Y, GetTabRect(i).Width - 5, GetTabRect(i).Height);
                G.FillRectangle(new SolidBrush(mainBackground), TabRect);
                G.DrawString(TabPages[i].Text, new Font("Tahoma", 9, FontStyle.Bold), new SolidBrush(ForeColor), TabRect, new StringFormat
                {
                    LineAlignment = StringAlignment.Center,
                    Alignment     = StringAlignment.Center
                });
            }

            G.FillRectangle(new SolidBrush(mainBackground), 0, ItemSize.Height, Width, Height);

            if (!(SelectedIndex == -1))
            {
                Rectangle TabRect = new Rectangle(GetTabRect(SelectedIndex).X + 3, GetTabRect(SelectedIndex).Y, GetTabRect(SelectedIndex).Width - 5, GetTabRect(SelectedIndex).Height);
                G.FillPath(new SolidBrush(activeTabColor), Draw.RoundRect(TabRect, 4));
                G.DrawPath(new Pen(new SolidBrush(Color.FromArgb(20, 20, 20))), Draw.RoundRect(TabRect, 4));
                G.DrawString(TabPages[SelectedIndex].Text, new Font("Tahoma", 9, FontStyle.Bold), new SolidBrush(_textColor), TabRect, new StringFormat
                {
                    Alignment     = StringAlignment.Center,
                    LineAlignment = StringAlignment.Center
                });
            }

            e.Graphics.DrawImage(B, new Point(0, 0));
            G.Dispose();
            B.Dispose();
        }