/// <summary>
        /// Raises the <see cref="E:System.Windows.Forms.Control.Paint" /> event.
        /// </summary>
        /// <param name="e">A <see cref="T:System.Windows.Forms.PaintEventArgs" /> that contains the event data.</param>
        protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
        {
            Bitmap   bm = new Bitmap(this.Width, this.Height, e.Graphics);
            Graphics g  = Graphics.FromImage(bm);

            g.FillRectangle(Brushes.LightGray, new Rectangle(0, 0, bm.Width, bm.Height));
            e.Graphics.FillRectangle(Brushes.LightGray, new Rectangle(0, 0, this.Width, this.Height));
            int x = 4, y = 4;
            int n = 0;

            foreach (ShapeType shape in Enum.GetValues(typeof(ShapeType)))
            {
                GraphicsPath path = new GraphicsPath();
                ZeroitCustomControl.updateOutline(ref path, shape, _width, _height, 2);
                g.FillRectangle(Brushes.LightGray, 0, 0, bm.Width, bm.Height);
                g.FillPath(Brushes.Yellow, path);
                g.DrawPath(Pens.Red, path);
                e.Graphics.DrawImage(bm, x, y, new Rectangle(new Point(0, 0), new Size(_width + 1, _height + 1)), GraphicsUnit.Pixel);
                if (this.shape.Equals(shape))
                {
                    e.Graphics.DrawRectangle(Pens.Red, new Rectangle(new Point(x - 2, y - 2), new Size(_width + 4, _height + 4)));
                }
                n++;
                x = (n % _numcol) * (_width); x = x + (n % _numcol) * 6 + 4;
                y = (n / _numcol) * (_height); y = y + (n / _numcol) * 6 + 4;
            }
        }
        public override void PaintValue(System.Drawing.Design.PaintValueEventArgs e)
        {
            Bitmap       bm    = new Bitmap(e.Bounds.Width + 4, e.Bounds.Height + 4, e.Graphics);
            Graphics     g     = Graphics.FromImage(bm);
            ShapeType    shape = (ShapeType)e.Value;
            GraphicsPath path  = new GraphicsPath();

            ZeroitCustomControl.updateOutline(ref path, shape, e.Bounds.Width - 5, e.Bounds.Height - 5, 2);
            g.FillPath(Brushes.Yellow, path);
            g.DrawPath(Pens.Red, path);
            e.Graphics.DrawImage(bm, 3, 3, new Rectangle(new Point(0, 0), new Size(e.Bounds.Width, e.Bounds.Height)), GraphicsUnit.Pixel);
        }