При касании элемента другим элементом выполнить действие

На форме есть несколько элементов label расположенные внутри panel1 (label 1-4 голубые, label5 - желтый, labelst - зеленый, labelfin - красный) введите сюда описание изображения

С помощью этого кода, я могу перемещать label5(жёлтый) стрелками на клавиатуре

 public Form1()
    {
        InitializeComponent();
        KeyDown += new KeyEventHandler(panel1_KeyDown);
    }
 private void panel1_KeyDown(object sender, KeyEventArgs e)
    {
       
        if (e.KeyCode == Keys.Left)
            label5.Location = new Point(label5.Left - 10, label5.Top); 
        if (e.KeyCode == Keys.Right)
            label5.Location = new Point(label5.Left + 10, label5.Top); 

        if (e.KeyCode == Keys.Up)
            label5.Location = new Point(label5.Left, label5.Top - 10); 

        if (e.KeyCode == Keys.Down)
            label5.Location = new Point(label5.Left, label5.Top +10); 

        Refresh();
    }

Как уже стало ясно - это "игра" лабиринт. Но собственно главный вопрос! Как сделать так, чтобы при касании с другими элементами были действия, а не простое перемещение?


Ответы (1 шт):

Автор решения: Сергей Качалов

не знаю правильно или нет, но догадался лишь до этого

if (label5.Bounds.IntersectsWith(label1.Bounds))
        {
            label5.Location = new Point(labelst.Left, labelst.Top);
        }
→ Ссылка