Загрузка данных


using System;
using System.Drawing;
using System.Windows.Forms;

namespace laba5
{
    public partial class Form1 : Form
    {
        // Объявляем 6 кнопок
        private Button btnRed, btnBlue, btnRandColor, btnPalette, btnExit, btnOK;
        
        // Панель и переключатели внутри неё
        private Panel panel1;
        private RadioButton rbYellow, rbWhite, rbRandom;
        
        // Диалоговое окно для палитры
        private ColorDialog colorDialog1;
        
        private Random rnd = new Random();

        public Form1()
        {
            // Настройка самой формы
            this.Text = "Заголовок";
            this.Size = new Size(600, 400);

            InitializeCustomComponents();
        }

        private void InitializeCustomComponents()
        {
            // --- 1. Шесть кнопок ---
            btnRed = new Button { Text = "Цвет красный", Location = new Point(20, 20), Width = 130 };
            btnRed.Click += (s, e) => btnRed.BackColor = Color.Red; // Меняет свой цвет

            btnBlue = new Button { Text = "Цвет окна", Location = new Point(20, 60), Width = 130 };
            btnBlue.Click += (s, e) => this.BackColor = Color.LightBlue; // Меняет цвет формы

            // Вместо "Случайный цвет" я назвал её "Цвет из окна" (как вы написали), 
            // но логика осталась прежней - случайный цвет.
            btnRandColor = new Button { Text = "Цвет из окна", Location = new Point(20, 100), Width = 130 };
            btnRandColor.Click += (s, e) => this.BackColor = Color.FromArgb(rnd.Next(256), rnd.Next(256), rnd.Next(256));

            btnPalette = new Button { Text = "Цвет из палитры", Location = new Point(20, 140), Width = 130 };
            btnPalette.Click += BtnPalette_Click;

            // Кнопка Выход
            btnExit = new Button { Text = "Выход", Location = new Point(20, 250), Width = 130 };
            btnExit.Click += (s, e) => Application.Exit();

            // --- 2. Панель (квадрат) с переключателями ---
            panel1 = new Panel { Location = new Point(200, 20), Size = new Size(150, 130), BorderStyle = BorderStyle.FixedSingle };
            
            rbYellow = new RadioButton { Text = "Желтый", Location = new Point(10, 10), Checked = true };
            rbWhite = new RadioButton { Text = "Белый", Location = new Point(10, 40) };
            rbRandom = new RadioButton { Text = "Случайный", Location = new Point(10, 70) };
            
            // Добавляем переключатели в панель
            panel1.Controls.Add(rbYellow);
            panel1.Controls.Add(rbWhite);
            panel1.Controls.Add(rbRandom);

            // Кнопка OK (применяет выбранный в панели цвет)
            btnOK = new Button { Text = "OK", Location = new Point(230, 170), Width = 80 };
            btnOK.Click += BtnOK_Click;

            // --- 3. Невизуальные компоненты ---
            colorDialog1 = new ColorDialog();

            // --- Добавляем всё на форму ---
            this.Controls.Add(btnRed);
            this.Controls.Add(btnBlue);
            this.Controls.Add(btnRandColor);
            this.Controls.Add(btnPalette);
            this.Controls.Add(btnExit);
            this.Controls.Add(panel1);
            this.Controls.Add(btnOK);
        }

        // Логика для кнопки палитры
        private void BtnPalette_Click(object sender, EventArgs e)
        {
            if (colorDialog1.ShowDialog() == DialogResult.OK)
            {
                this.BackColor = colorDialog1.Color;
            }
        }

        // Логика для кнопки OK
        private void BtnOK_Click(object sender, EventArgs e)
        {
            if (rbYellow.Checked) 
                this.BackColor = Color.Yellow;
            else if (rbWhite.Checked) 
                this.BackColor = Color.White;
            else if (rbRandom.Checked) 
                this.BackColor = Color.FromArgb(rnd.Next(256), rnd.Next(256), rnd.Next(256));
        }
    }
}