Создание интерфейса - Drag And Drop

263
25 февраля 2018, 23:00

Подскажите как реализовать интерфейс в котором будет реализован Drag And Drop для компонентов, наследуемых User Control'ами.

Либо каким простым способом можно перемещать User Control'ы по форме.

Пример стороннего кода:

public interface IDragable
{
    bool Hit(Point point);
    void Drag(Point offset);
    IDragable StartDrag(Point p);
    void EndDrag();
}
Answer 1

Частичный ответ на вопрос, без использования интерфейса решил таким образом.

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);
}
READ ALSO
Запуск нескольких задач только в одном потоке

Запуск нескольких задач только в одном потоке

В момент времени запускаются 300 тасков ( этот запуск происходит периодически в пару минут)Метод, который выполняется внутри таска, производит...

256
ASP.NET Web API и Angular - ошибка 405

ASP.NET Web API и Angular - ошибка 405

В общем имеется развернутое Web API на IIS 8 с Angular 2 SPAПри использовании метода POST (попытка залогиниться) выдает 405 ошибку, что Htttp verb not allowed

239
Асинхронный вызовы. Блокировка задач. AutoResetEvent

Асинхронный вызовы. Блокировка задач. AutoResetEvent

Добрый день! При вызове метода Set() в AutoResetEvent в обработчике события (EndRequest) происходит полная блокировка всего приложенияНе могу понять почему

210
C# работа с dbf файлами

C# работа с dbf файлами

На последней команде вот такая ошибка:

323