.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();
}
}