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

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

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

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

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

textual
Листинг программы
  1. protected override void OnMouseDown(MouseEventArgs e)
  2.         {
  3.             base.OnMouseDown(e);
  4.  
  5.             if (Figures == null) return;
  6.  
  7.             if (e.Button == MouseButtons.Left)
  8.             {
  9.                 startMouseDrag = e.Location;
  10.  
  11.                 //есликликнули на маркер - выделяем маркер
  12.                 if (selectedFigure != null)
  13.                 {
  14.                     foreach (var m in selectedFigure)
  15.                     if (m.HitTest(e.Location))
  16.                     {
  17.                         selectedMarker = m;
  18.                         return;
  19.                     }
  20.                 }
  21.  
  22.                 selectedFigure = null;
  23.                 selectedMarker = null;
  24.  
  25.                 //ищем фигуру под мышкой
  26.                 using(var pen = new Pen(Color.Black, 3))
  27.                 foreach (var f in Figures)
  28.                 if (f.Path.IsOutlineVisible(e.Location, pen))
  29.                 {
  30.                     selectedFigure = f;//выделяем фигуру
  31.                     break;
  32.                 }
  33.  
  34.                 Invalidate();
  35.             }
  36.         }

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут