public Button(Colors colors, int type, bool visible = true, string text = "") : this(colors)
        {
            this.visible = visible;
            switch (type)
            {
            case 1:
            {
                font   = new Font(font.FontFamily, 30);
                answer = 1;
                gpath  = new GraphicsPath();
                Point start = new Point(100, 200);
                gpath.AddClosedCurve(new Point[] {
                        new Point(start.X, start.Y),
                        new Point(start.X + 50, start.Y),
                        new Point(start.X + 100, start.Y),
                        new Point(start.X + 150, start.Y),
                        new Point(start.X + 200, start.Y),
                        new Point(start.X + 200, start.Y + 50),
                        new Point(start.X + 200, start.Y + 100),
                        new Point(start.X + 150, start.Y + 100),
                        new Point(start.X + 100, start.Y + 100),
                        new Point(start.X + 100, start.Y + 150),
                        new Point(start.X + 100, start.Y + 200),
                        new Point(start.X + 50, start.Y + 200),
                        new Point(start.X, start.Y + 200),
                        new Point(start.X, start.Y + 150),
                        new Point(start.X, start.Y + 100),
                        new Point(start.X, start.Y + 50)
                    });
                this.text = "Да";
                textRect  = new Rectangle(start.X + 10, start.Y + 15, 90, 70);
                break;
            }

            case 2:
            {
                font   = new Font(font.FontFamily, 30);
                answer = 2;
                gpath  = new GraphicsPath();
                Point start = new Point(350, 200);
                gpath.AddClosedCurve(new Point[] {
                        new Point(start.X, start.Y),
                        new Point(start.X + 50, start.Y),
                        new Point(start.X + 100, start.Y),
                        new Point(start.X + 150, start.Y),
                        new Point(start.X + 200, start.Y),
                        new Point(start.X + 200, start.Y + 50),
                        new Point(start.X + 200, start.Y + 100),
                        new Point(start.X + 200, start.Y + 150),
                        new Point(start.X + 200, start.Y + 200),
                        new Point(start.X + 150, start.Y + 200),
                        new Point(start.X + 100, start.Y + 200),
                        new Point(start.X + 100, start.Y + 150),
                        new Point(start.X + 100, start.Y + 100),
                        new Point(start.X + 50, start.Y + 100),
                        new Point(start.X, start.Y + 100),
                        new Point(start.X, start.Y + 50)
                    });
                this.text = "Нет";
                textRect  = new Rectangle(start.X + 110, start.Y + 15, 90, 70);
                break;
            }

            case 3:
            {
                answer = 3;
                gpath  = new GraphicsPath();
                Point start = new Point(225, 325);
                gpath.AddRectangle(new Rectangle(start.X, start.Y, 200, 100));
                this.text = text;
                textRect  = new Rectangle(start.X + 20, start.Y + 25, 160, 50);
                break;
            }

            default:
                throw(new System.Exception());
            }
        }
 public void ChangeColor(Colors colors)
 {
     mainBrush = new SolidBrush(colors.buttonColor);
     textBrush = new SolidBrush(colors.textColor);
     pen       = new Pen(colors.buttonLines, pen.Width);
 }