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


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

namespace Lab5_and_6
{
    public partial class Form1 : Form
    {
        // Генератор случайных чисел для задания цвета
        Random rnd = new Random();

        public Form1()
        {
            InitializeComponent();
            
            // Настройка PictureBox, чтобы картинка вписывалась в рамки (как на стр. 25)
            pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
            
            // По умолчанию картинка скрыта (для Задания 6)
            pictureBox1.Visible = false;
        }

        // ==========================================
        // ЗАДАНИЕ 5 (и флажки со стр. 36)
        // ==========================================

        // 1. Кнопка меняет СВОЙ цвет на красный
        private void btnRed_Click(object sender, EventArgs e)
        {
            btnRed.BackColor = Color.Red;
        }

        // 2. Кнопка меняет цвет ОКНА на голубой
        private void btnBlue_Click(object sender, EventArgs e)
        {
            this.BackColor = Color.LightBlue;
        }

        // 3. Кнопка меняет цвет окна случайным образом
        private void btnRandColor_Click(object sender, EventArgs e)
        {
            this.BackColor = Color.FromArgb(rnd.Next(256), rnd.Next(256), rnd.Next(256));
        }

        // 4. Выбор цвета из палитры (по гайду со стр. 23)
        private void btnPalette_Click(object sender, EventArgs e)
        {
            if (colorDialog1.ShowDialog() == DialogResult.OK)
            {
                this.BackColor = colorDialog1.Color;
            }
        }

        // Кнопка ОК (применяет цвет в зависимости от выбранного переключателя)
        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));
        }

        // Кнопка Выход (внизу слева)
        private void btnExit_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        // --- Флажки (CheckBox) ---
        // Разовое изменение заголовка
        private void chkTitle_CheckedChanged(object sender, EventArgs e)
        {
            if (chkTitle.Checked) this.Text = "Новый заголовок";
            else this.Text = "Заголовок";
        }

        // Изменение цвета окна на синий
        private void chkBlue_CheckedChanged(object sender, EventArgs e)
        {
            if (chkBlue.Checked) this.BackColor = Color.Blue;
        }

        // Завершение работы
        private void chkExit_CheckedChanged(object sender, EventArgs e)
        {
            if (chkExit.Checked) Application.Exit();
        }

        // ==========================================
        // ЗАДАНИЕ 6 (Работа с изображениями)
        // ==========================================

        // Выбор изображения (по гайду со стр. 23/25)
        private void btnSelectImg_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    // Загружаем картинку. StretchImage мы уже задали в конструкторе.
                    pictureBox1.Image = new Bitmap(openFileDialog1.FileName);
                }
                catch (Exception)
                {
                    MessageBox.Show("Не удалось загрузить изображение. Выберите графический файл (jpg, png).");
                }
            }
        }

        // Показать картинку
        private void btnShow_Click(object sender, EventArgs e)
        {
            if (pictureBox1.Image != null)
                pictureBox1.Visible = true;
            else
                MessageBox.Show("Сначала выберите изображение!");
        }

        // Скрыть картинку
        private void btnHide_Click(object sender, EventArgs e)
        {
            pictureBox1.Visible = false;
        }
    }
}