Загрузка данных
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));
}
}
}