2010-04-07 62 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