.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();
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д