.NET 4.x Создать событие для объекта класса - C#

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

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

Доброго времени суток! Предположим, что существует класс, назовём его MyClass. Я добавляю в список List<MyClass> MyList объекты этого класса по нажатию левой кнопки мыши на панель и рисую их на этой же панели panel1
private void panel1_MouseClick(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                MyList.Add(new MyClass(e.X,e.Y));
                MyList.Last().Draw(gr);
            }
        }
Теперь я хочу создать событие нажатия кнопок мыши уже на нашем нарисованном объекте, чтобы это выглядело, например, так: я нажимаю ЛКМ на панель - рисуется наш объект (круг, к примеру), нажимаю ПКМ на этом круге - он меняет цвет, нажимаю ЛКМ на этом круге - перемещается и т.д. Думаю, смысл понятен. Помогите реализовать.

Решение задачи: «.NET 4.x Создать событие для объекта класса»

textual
Листинг программы
protected override void OnMouseDown(MouseEventArgs e)
        {
            base.OnMouseDown(e);
 
            if (Figures == null) return;
 
            if (e.Button == MouseButtons.Left)
            {
                startMouseDrag = e.Location;
 
                //есликликнули на маркер - выделяем маркер
                if (selectedFigure != null)
                {
                    foreach (var m in selectedFigure)
                    if (m.HitTest(e.Location))
                    {
                        selectedMarker = m;
                        return;
                    }
                }
 
                selectedFigure = null;
                selectedMarker = null;
 
                //ищем фигуру под мышкой
                using(var pen = new Pen(Color.Black, 3))
                foreach (var f in Figures)
                if (f.Path.IsOutlineVisible(e.Location, pen))
                {
                    selectedFigure = f;//выделяем фигуру
                    break;
                }
 
                Invalidate();
            }
        }

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


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

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

12   голосов , оценка 3.917 из 5