Winform 桌面应用使用vb(.ocx)ActiveX
在.net中使用ocx控件(vb),桌面程序的主界面 上把控件Mar(需要使用的)从工具箱拖到界面上,引用里自动添加2个命名空间在Designer.cs文件里有个实例对象 private AxMar.AxCtrl ax1;
现在,需要把三个ActiveX 控件A,B,C简单的封装,他们干的事儿差不多,比如初始化Init方法
A:void Init()
B:bool Init(ref string error)
C:bool InitCtrl()
这样,我只需要写个方法bool Init(string error) 就行了。
问题是,我不想把ActiveX 加载到主界面上,自己去new对象,可是老抛异常,引发类型为“System.Windows.Forms.AxHost+InvalidActiveXStateException”的异常。
跟踪发现,自己手动写代码new 对象是不对的,把ActiveX控件拖界面上实例化一个对象OO,使用00调用控件里面的方法就可以。为什么?
是否可以自己写代码调用控件ActiveX 里面的方法,不加载到主界面?