Я работаю над приложением, которое требует некоторых необычных пользовательских элементов управления. Наследование от класса .net Control вызвало различные проблемы и усложняет ситуацию с течением времени. Я не буду вдаваться в подробности здесь, но я создаю свою собственную легковесную архитектуру управления, чтобы избежать некоторых из этих проблем. Вещи работают хорошо, но мне нужно добавить функциональность перетаскивания в мою архитектуру.
Все методы, которые я придумала до сих пор, кажутся грязными и подверженными ошибкам. Я во многом имитирую класс .net Control, и с большой пользой использовал рефлектор .net, но у меня возникла проблема с выяснением того, как вызвать мои события перетаскивания (DragDrop, DragEnter, DragLeave).
Я просто не могу придумать, как очистить эти события. У кого-нибудь есть идеи?
Пока что лучшее, что я придумал, это реализовать интерфейс IDropTarget и надеюсь , что мои события будут срабатывать. Они не.
@ Тамберг: Я прочитал эту статью, и это не совсем то, что я ищу (хотя, спасибо). Моя проблема в том, что я не знаю, как реализовать систему событий. Например, как мне узнать, когда объект данных перетаскивается через мой пользовательский класс управления? Как я могу вызвать эти события (DragOver, DragDrop и т. Д.)?
Все элементы управления в примере наследуются от System.Windows.Forms.Control, чего я и стараюсь избегать.