Событие Click для объекта Rectangle - C#

Узнай цену своей работы

Формулировка задачи:

Есть такая простая программка:
public partial class Form_Main : Form
    {
        private int WidthHeight = 30;
        private Rectangle[,] _rectangles = new Rectangle[8, 8];
        private Pen _blackPen = new Pen(Color.Black, 1);
 
        public Form_Main()
        {
            InitializeComponent();
            pictureBox1.Invalidate();
        }
 
        private void pictureBox1_Paint(object sender, PaintEventArgs e)
        {
            Graphics paper = e.Graphics;
            Nets(paper);
        }
 
        private void Nets(Graphics paper)
        {
            Point a = new Point(pictureBox1.Left, pictureBox1.Top);
            _rectangles[0, 0] = new Rectangle(a.X, a.Y, WidthHeight, WidthHeight);
            paper.DrawRectangle(_blackPen, _rectangles[0, 0]);
        }
    }
Вопрос: как мне добавить событие, допустим клик мышкой, для прямоугольника

_rectangles[0, 0]

?

Решение задачи: «Событие Click для объекта Rectangle»

textual
Листинг программы
 public partial class Form1 : Form
    {
        const int ROW = 8;
        const int COL = 8;
        Rectangle[,] rect = new Rectangle[8, 8];  
        Rectangle mouserect;  // прямоугольник для указателя мыши 
        Graphics picBoxGraphics;
        Random rand = new Random();
 
 
        public Form1()
        {
            InitializeComponent();
            mouserect.Size = new Size(1, 1);
 
            for (int i = 0; i < rect.GetLength(0); i++)
            {
                for (int j = 0; j < rect.GetLength(1); j++)
                {                   
                    rect[i, j].Width    = pictureBox1.Width / ROW;
                    rect[i, j].Height   = pictureBox1.Height / COL;
                    rect[i, j].Location = new Point(i * rect[i, j].Width , j * rect[i, j].Height);
                }
            }
            
            picBoxGraphics = pictureBox1.CreateGraphics();
        }
 
   
 
        private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
        {
            mouserect.Location = e.Location;  // определили позицию мыши 
 
            for (int i = 0; i < rect.GetLength(0); i++)
            {
                for (int j = 0; j < rect.GetLength(1); j++)
                {
                    if (rect[i, j].IntersectsWith(mouserect)) //  есть ли пересечение 
                    {
                        Color color = Color.FromArgb( rand.Next(256),rand.Next( 256),rand.Next( 256));
                        SolidBrush brush = new SolidBrush(color);
                        this.picBoxGraphics.FillRectangle(brush, rect[i, j]);
                    }
                }
            }
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4 из 5
Похожие ответы