不会是真说设计的时候吧  运行的时候 不知道怎么弄,没试过,没想过这么弄,不过应该是用到 DragDrop  , DragEnter  DragLeave, DragOver  这几个事件吧。

解决方案 »

  1.   

    显然能实现。线程注入。然后就是动态的用api创建控件。注册事件。
      

  2.   

    运行时也可以实现,关键是你这样做的动机是什么?.NET 提供了一套简单的机制实现拖放,参见MSDN:DragEnter,DragOver,DragDrop,DragLeave。对于你的情况,一个比较简单的做法是,将控件的状态序列化为 FileStream 对象,然后将序列化后的 FileStream 通过拖放传递到另一个 Form,在另一个 Form 里面将 FileStream 对象反序列化并动态生成一个“看起来一样”的控件。