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


using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;

namespace zxcqwezxc
{
    public partial class Form1 : Form
    {
        private List<(Rectangle rect, Color color)> rectangles;

        public Form1()
        {
            InitializeComponent();
            this.DoubleBuffered = true;
            rectangles = new List<(Rectangle rect, Color color)>();
            this.Load += Form1_Load;
            this.Paint += Form1_Paint;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            GenerateRectangles();
        }

        private void GenerateRectangles()
        {
            Random rnd = new Random();
            rectangles.Clear();
            int clientWidth = this.ClientSize.Width;
            int clientHeight = this.ClientSize.Height;

            for (int i = 0; i < 50; i++)
            {
                // Случайные размеры: от 10 до 100 пикселей (или в зависимости от размера окна)
                int width = rnd.Next(10, Math.Min(100, clientWidth));
                int height = rnd.Next(10, Math.Min(100, clientHeight));
                int x = rnd.Next(0, Math.Max(0, clientWidth - width));
                int y = rnd.Next(0, Math.Max(0, clientHeight - height));
                Rectangle rect = new Rectangle(x, y, width, height);
                Color color = Color.FromArgb(rnd.Next(256), rnd.Next(256), rnd.Next(256));
                rectangles.Add((rect, color));
            }
        }

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            foreach (var (rect, color) in rectangles)
            {
                using (SolidBrush brush = new SolidBrush(color))
                {
                    g.FillRectangle(brush, rect);
                }
            }
        }

        // При изменении размеров формы перегенерируем прямоугольники? 
        // Или оставить статичными, но при изменении размера может стать видна только часть.
        // По заданию лучше, чтобы при запуске отрисовывались, а при ресайзе не пропадали.
        // Лучше подписаться на Resize и перегенерировать, чтобы заполнить всё окно.
        // Добавим:
        private void Form1_Resize(object sender, EventArgs e)
        {
            GenerateRectangles();
            this.Invalidate(); // Перерисовать
        }
    }
}