Реализуйте ленивое перетаскивание
Я пытаюсь реализовать ленивую операцию перетаскивания. Я хочу показать мой список пользователям с файлами, когда пользователь перетаскивает файл и помещает его в папку, содержимое должно быть загружено и доставлено.
Я использую интерфейс IDataObject, но моя проблема в том, что метод GetData() запрашивается слишком рано. Например, перетаскивание по рабочему столу (без какой-либо пропущенной операции) несколько раз запросит метод GetData(). И каждый из этих вызовов запускает загрузку файла: /
Теперь мой вопрос: что здесь не так - почему метод GetData() вызывается без какого-либо удаления? Есть ли другой способ реализовать ленивые операции перетаскивания в.net?
2 ответа
Может быть, это может сработать для вас...
В каждом случае GetData() сделайте это:
- вам понадобится какой-то таймер здесь.
- если ваш таймер уже активен, убейте его.
- создать и запустить новый таймер. Сделайте это 1 сек или определите его продолжительность из эксперимента.
- по событию таймер делать то, что должно быть сделано.
Я использую подобную процедуру во многих случаях, когда такой обходной путь необходим.
Я думаю, что GetData вызывается так, чтобы (потенциальная) цель отбрасывания могла определить, может ли она принять (потенциальную) позицию (и) отбрасывания. Вы рассматривали возможность использования расширения оболочки?