Подскажите как реализовать интерфейс в котором будет реализован Drag And Drop для компонентов, наследуемых User Control'ами.
Либо каким простым способом можно перемещать User Control'ы по форме.
Пример стороннего кода:
public interface IDragable
{
bool Hit(Point point);
void Drag(Point offset);
IDragable StartDrag(Point p);
void EndDrag();
}
Частичный ответ на вопрос, без использования интерфейса решил таким образом.
protected override void OnMouseDown(MouseEventArgs mevent)
{
NewPoint = mevent.Location;
IsDragMode = true;
base.OnMouseDown(mevent);
}
protected override void OnMouseUp(MouseEventArgs mevent)
{
IsDragMode = false;
base.OnMouseUp(mevent);
}
protected override void OnMouseMove(MouseEventArgs mevent)
{
//если кнопка мыши нажата
if (IsDragMode)
{
Point p = mevent.Location;
//вычисляем разницу в координатах между положением курсора и "нулевой" точкой кнопки
Point dp = new Point(p.X - NewPoint.X, p.Y - NewPoint.Y);
Location = new Point(Location.X + dp.X, Location.Y + dp.Y);
}
base.OnMouseMove(mevent);
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости