English 中文(简体)
我该如何实现一个完全自定义的可拖动控件?
原标题:
  • 时间:2008-11-12 22:10:46
  •  标签:

我正在开发一个需要一些炫酷的自定义控件的应用程序。从 .net Control 类继承导致了各种问题,并且随着时间的推移,情况变得越来越困难。我不会在这里进入细节,但我正在创建自己的轻量级控件架构,以避免一些这些问题。事情进展顺利,但我需要将拖放功能添加到我的架构中。

到目前为止,我想出来的所有方法都显得混乱而容易出错。我以许多方面模仿了.NET Control类,并且已经充分利用了.NET反射器,但我遇到了一个问题,即如何使我的拖动事件触发(DragDrop,DragEnter,DragLeave)。

我只是想不出一种干净的方式来触发这些事件。有人有任何想法吗?


到目前为止,我能想到的最好解决方法是实现IDropTarget接口并“希望”我的事件会触发。但事实并非如此。


@tamberg:我阅读了那篇文章,但它并不是我正在寻找的(还是谢谢你)。我的问题是我不知道如何实现事件系统。例如,我如何知道正在拖动的数据对象何时位于我的自定义控件类上?我该如何引发这些事件(DragOver,DragDrop等)?

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

问题回答

只是猜测:

Windows Forms, Custom Controls Part 1: Mastering DragDrop (http://www.codeproject.com/KB/miscctrl/LANDragDrop.aspx)

Regards, tamberg





相关问题
热门标签