一般我遇到这种多继承的,主要用两种方法,一是用接口
二是,一个继承,一个组合
你可以重新设计一下你的Drag&Drop的control,使它象一个插件,插到哪个CONTROL上,哪个CONTROL就具有Drag&Drop功能。或者象一个装配器,给它一个CONTROL,它就能控制这个CONTROL,使之具有Drag&Drop功能。看你有星星了,我就不多说了,给你思路就应该可以了吧!有机会多联系!
有问题发消息给我!

解决方案 »

  1.   

    to:cxx1997(小网虫_L) 
    他是有红星但我们是绿星啊,呵呵,你还是说详细些吧。我也想听听。
    谢谢
      

  2.   

    yhcnux() 
      呵呵,看看DELPHI的VCL吧,就知道了
    或者看设计模式吧,我也是低手,怎么敢教星星 如何去设计呢,:-)
    还是楼主做出来之后,给我们看看
      

  3.   

    使用接口,然后实现借口中的方法事件通过代理来传递。具体事件的实现当然是由客户程序来实现的。你在设计编码的时候,没有必要实现吧。虚方法是用来改写的如果要用到父类的方法base.XXX()。我现在按你的思路来设想。你说你要实现Drag&Drop功能的control而Label是从control派生的,那么你的NewLabel只要从Label派生,然后实现Drag&Drop功能不就完了至于事件代码,我觉得留个客户程序会比较好。
      

  4.   

    晕倒!偶的红星也是骗来的,嗬嗬!我已经用delegate的方式实现了,谢谢大家,呵呵!暂时不结帐,还有什么好办法?我看过utilitylibrary中的实现,也是一个一个control写的,:(
      

  5.   

    一个一个control写?
       这多惨呀!
       楼主,你这样以后就要一个一个control维护哦!
      

  6.   

    不这么玩了,我自己作了一个label/button/combobox(就是单纯的paint),因为我也不需要这些control相应什么事件
      

  7.   

    同意cxx1997(小网虫_L) :)
    用继承+组合应该是比较好的方法。
      

  8.   

    哈哈,谢谢 qqchen79(知秋一叶 [MS MVP]) 
    三个星星的都同意我,感动呀!
      

  9.   

    to 1997兄,我用了插件的方式,不过,总感觉这样class封得不好,露了一个洞一样!