如何实现完全自定义的可拖动控件?

时间:2008-11-12 22:10:46

标签: c# .net custom-controls

我在一个需要一些花哨的自定义控件的应用程序上工作。继承.net控件类已经引发了各种问题,并且随着时间的推移使事情变得更加艰难。我不会在这里详细说明,但我正在创建自己的轻量控制架构,以避免一些这些问题。事物艺术很好,但我需要在我的架构中添加拖放功能。

到目前为止,我提出的所有方法看起来都很混乱且容易出错。我在很多方面都在模仿.net Control类,并且使用了.net反射器,但是我遇到了一个问题,想知道如何使我的拖动事件激活(DragDrop,DragEnter,DragLeave)。

我无法想到一个彻底解决这些事件的方法。有没有人有任何想法?


到目前为止,我提出的最好的方法是实现我的事件将触发的IDropTarget接口和希望。他们没有。


@tamberg:我读过那篇文章并不是我想要的(谢谢你)。我的问题是我不知道如何实现事件系统。例如,我如何知道何时在我的自定义控件类上拖动数据对象?如何引发这些事件(DragOver,DragDrop等)?

示例中的所有控件都继承自System.Windows.Forms.Control,这是我要避免的。

1 个答案:

答案 0 :(得分:2)

只是一个猜测:

Windows窗体,自定义控件第1部分:掌握DragDrop (http://www.codeproject.com/KB/miscctrl/LANDragDrop.aspx

此致 tamberg