Как реализовать полностью настраиваемый перетаскиваемый элемент управления? - PullRequest
0 голосов
/ 13 ноября 2008

Я работаю над приложением, которое требует некоторых необычных пользовательских элементов управления. Наследование от класса .net Control вызвало различные проблемы и усложняет ситуацию с течением времени. Я не буду вдаваться в подробности здесь, но я создаю свою собственную легковесную архитектуру управления, чтобы избежать некоторых из этих проблем. Вещи работают хорошо, но мне нужно добавить функциональность перетаскивания в мою архитектуру.

Все методы, которые я придумала до сих пор, кажутся грязными и подверженными ошибкам. Я во многом имитирую класс .net Control, и с большой пользой использовал рефлектор .net, но у меня возникла проблема с выяснением того, как вызвать мои события перетаскивания (DragDrop, DragEnter, DragLeave).

Я просто не могу придумать, как очистить эти события. У кого-нибудь есть идеи?


Пока что лучшее, что я придумал, это реализовать интерфейс IDropTarget и надеюсь , что мои события будут срабатывать. Они не.


@ Тамберг: Я прочитал эту статью, и это не совсем то, что я ищу (хотя, спасибо). Моя проблема в том, что я не знаю, как реализовать систему событий. Например, как мне узнать, когда объект данных перетаскивается через мой пользовательский класс управления? Как я могу вызвать эти события (DragOver, DragDrop и т. Д.)?

Все элементы управления в примере наследуются от System.Windows.Forms.Control, чего я и стараюсь избегать.

1 Ответ

2 голосов
/ 13 ноября 2008

Просто предположение:

Windows Forms, пользовательские элементы управления, часть 1: мастеринг DragDrop (http://www.codeproject.com/KB/miscctrl/LANDragDrop.aspx)

С уважением, Тамберг

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