2010-04-07 77 views
0

我正在尝试使用我的.net图像编辑器用户控件作为Web窗体中的一个activeX对象。.net activeX对象

互联网搜索后,我从VS2008创建了一个asp.net网站,并添加以下代码

<object classid="res/ImageEditor.dll#ImageEditor.Editor" 
     height="400" width="400" id="myControl1" name="myControl1" > 
</object> 

<INPUT id="Button1" type="button" value="Btn" name="Btn" onclick="return Button1_onclick()"> 

</script> 
<script language=javascript> 
    function Button1_onclick() { 
     alert(document.getElementById("myControl1").WatermarkText); 
    } 
</script> 

我有两个问题

1)当我第一次创建项目中,我看到了用户在浏览器上进行控制,但在重建用户控件并更改网站上的dll文件后,该对象不再出现在浏览器中。相反,我看到像错误图像的东西。

2-)我无法访问公共属性。

用户控件被标记为“make com visible”,并且在属性中检查com的注册。

回答

0

为了让.NET UserControl能够像ActiveX一样很好地运行,有很多箍环可以跳过。

See my answer to this previous question,关于如何让它工作。

为了让您更清楚地了解构建UserControl时遇到问题的原因,您可能会在项目属性中找到自动构建编号。 “硬编码”属性中的版本号。只要你不改变界面,你应该没问题。

N.B.您必须实现公开的IDispatch接口才能使您的属性可访问。

+0

谢谢你的回答,解释我即将到来的关于事件的问题。但我需要解决第一个问题,以便能够尝试。我正在为dll中的每个更改创建一个新的网站项目。 – 2010-04-07 12:08:10

+0

@Ali YILDIRIM如果你保持相同的版本号和GUID,你不需要每次都创建一个新项目。但是,如果您更改界面,则需要修改ActiveX。 – ParmesanCodice 2010-04-07 12:34:55