Перетаскивание на пользовательскую панель задач в Excel VSTO - PullRequest
6 голосов
/ 15 апреля 2011

Арр, я застрял!

Я пишу надстройку Excel, которая открывает настраиваемую область задач (это тип инструмента анализа данных). В целях повышения производительности я хочу разрешить пользователю перетаскивать объект, такой как файл или вложение электронной почты, на часть этой области задач для обработки, а не проходить через один или несколько файловых диалогов.

Проблема в том, что Excel, кажется, полностью переопределяет свойства перетаскивания настраиваемой области задач и элементов управления, которые она содержит, поэтому, когда я перетаскиваю файл на панель задач, Excel просто пытается открыть его как электронную таблицу ( и успешно выполняется, если это поддерживаемый тип файла), и мое событие DragDrop никогда не запускается.

Есть ли способ заставить Excel перестать это делать, чтобы событие перетаскивания отправлялось на панель задач?

1 Ответ

4 голосов
/ 18 апреля 2011

Хорошо, я нашел способ. Оказывается, событие DragDrop не сработает, поскольку Excel обрабатывает все события перетаскивания, но событие DragEnter вызывает , и когда это происходит, я могу открыть немодальную форму поверх фактической цели перетаскивания. Эта форма может затем получить событие DragDrop (и убивает себя при событии DragLeave). Это что-то вроде хака, но, похоже, работает хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...