因为需要,我需要做一个控件OWCChart,而这个控件里添加了OWC11这个COM组件.
当我在其它应用程序中,使用这个控件时,出现"COM对象与其基础RCW分开后就不能再使用"这个问题!
如果将这个控件直接拖到FORM上,不做任何调整是没有问题的,但是,当我调整这个控件的一些属性,比如location,width等属性时就会出现这个错误!
望高手指点,分不够可再加!

解决方案 »

  1.   

    我也遇到同样的问题,我是这样解决的,但愿能对你有所帮助。
    我在当前的调用退出时运行了ReleaseComObj(),之后再运行此调用时出现你所说的错误。
    我的解决方法:
    ReleaseComObj函数如下:
            private void ReleaseComObj()
            {
                if (mLayerToDisplay != null)
                    Marshal.ReleaseComObject(mLayerToDisplay);
            }如果在程序中调用其他子程序时用到本程序中的变量,例如用到了一个“层”,那么在子程序中就不要释放这个“层”,只释放“目标”就可以了。
    例如:Marshal.ReleaseComObject(Layers);
    虽然子程序中用到“Layers”,但在上一层调用或其他调用中也用到此“Layers”,所以释放后出现错误。
    不知对你是否有帮助。
    总之:都不用时才能释放全局变量。
      

  2.   

    我将location属性设置为“TRUE”,也没有问题啊!