我有一个OCX控件,有个方法定义如下public virtual void setLabel(short nIndex, string param);然后我在PPT中插入这个控件
代码如下
shp = ActiveWindow.Selection..SlideRange.Shapes.AddOLEObject(252.25f, 120.62f, 379.)
object clt = shp.OLEFormat.Object;
object[] invokeArgs; invokeArgs = new object[] {(short)1, "Content" };
clt.GetType().InvokeMember("setLabel", System.Reflection.BindingFlags.InvokeMethod, null, clt, invokeArgs);
程序运行到最后一句提示:
System.Object InvokeDispMethod(System.String, System.Reflection.BindingFlags, System.Object, System.Object[], Boolean[], Int32, System.String[]) Message:未知名称。 (异常来自 HRESULT:0x80020006 (DISP_E_UNKNOWNNAME)) Data:System.Collections.ListDictionaryInternal有人知道怎么解决吗?谢谢!
代码如下
shp = ActiveWindow.Selection..SlideRange.Shapes.AddOLEObject(252.25f, 120.62f, 379.)
object clt = shp.OLEFormat.Object;
object[] invokeArgs; invokeArgs = new object[] {(short)1, "Content" };
clt.GetType().InvokeMember("setLabel", System.Reflection.BindingFlags.InvokeMethod, null, clt, invokeArgs);
程序运行到最后一句提示:
System.Object InvokeDispMethod(System.String, System.Reflection.BindingFlags, System.Object, System.Object[], Boolean[], Int32, System.String[]) Message:未知名称。 (异常来自 HRESULT:0x80020006 (DISP_E_UNKNOWNNAME)) Data:System.Collections.ListDictionaryInternal有人知道怎么解决吗?谢谢!
是虚方法么,有没有实现过啊http://forums.homeseer.com/showthread.php?t=131933
这老外代码
if (hs.ison ("A1"))
hs.execx10 ("A1","off",0)
else
hs.execx10 ("A1","on",0)
出错
Exception from HRESULT: 0x80020006 (DISP_E_UNKNOWNNAME) 别人提议他改成
if (hs.IsOn ("A1"))
hs.ExecX10 ("A1","off",0,0,false);
else
hs.ExecX10 ("A1","on",0,0,false);
都对了
office版本不一样参数个数也会不一样