国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

如何用c#來制作一個activeX控件或類似的東西

2024-07-21 02:19:20
字體:
來源:轉載
供稿:網友
q cat:
操作系統: 2000/xp
編程工具: vs.net 2003 /c#
問題: 我想制作一個activex控件或類似的東西,有用戶界面的,然后想在ie中使用,通過vbscript與其進行數據交換,在以前好像可以使用vb就能做到,但是現在是vs.net 2003企業版,好像已經進化了,activex成了老的技術,那vs.net如何解決這種類似的問題?如果要使用c#來編程的話,具體如何操作?還要有界面。

a回答:

在c#中和activex控件對應的是windows控件庫(user controls)。
在ie中激活windows forms控件可以分五步來完成:
* 創建windows forms控件;
* 創建一個包含對象標簽的html文檔;
* 創建虛擬目錄,復制并設置權限;
* 配置代碼訪問權限;
* 運行該控件。
1. windows forms控件:simplecontrol.dll
幾乎所有的windows forms控件都可以用,但在這個例子里,我們使用的是包含在.net framework sdk quickstart tutorial creating controls中的simplecontrol控件。
2. html文檔: simplecontrol.html
接下來一步是生成內有一個對象tag的html文檔,以激活windows forms控件。此外,還要加入一些腳本和輸入tag(input tags)到該控件的示范程序入口。
<object id="simplecontrol1"
classid="http:simplecontrol.dll#microsoft.samples.winforms.cs.simplecontrol.simplecontrol"
height="300"
width="300">
<param name="text" value="simple control">
</object>

對象tag:
classid包含兩個有趣的部分:導向控件庫的路徑和全名(fully qualified name),中間用“#”隔開。如果您熟悉activex對象tag的話,您會發現我們沒有使用guid。在windows 表單中,路徑和全名(fully qualified name)合并在一起的整體被用來當作唯一的識別符。
參數tag被用來設置控件的屬性:“name”參數是屬性名,而“value”參數則是屬性的值。
腳本:
<script>
function changetext() {
simplecontrol1.text = text1.value;
}

</script>

--------------------------------------------------------------------------------
<input type="text" id="text1">
<input type="button" value="change text" onclick="changetext()">

您可以寫一個腳本來獲得控件的程序入口,頁面上的按鈕和文本框已關聯到一個簡單的函數changetext,以設置該控件的text屬性。為了是修改的結果體現出來,控件必須重繪(調用invalidated()實現)。
完整代碼
下面是這個例子完整的html代碼:
<html>

<script>

function changetext() {
simplecontrol1.text = text1.value;
}

</script>

<body>

<p>simple control</p>
<br>
<br>

<object id="simplecontrol1"
classid="http:simplecontrol.dll#microsoft.samples.winforms.cs.simplecontrol.simplecontrol"
height="300"
width="300">
<param name="text" value="simple control">
</object>

<br>
<br>

<input type="text" id="text1">
<input type="button" value="change text" onclick="changetext()">

</body>

</html>
3. 虛擬目錄:
創建一個新的虛擬目錄,并將控件(simplecontrol.dll)和html文檔(simplecontrol.html)放到這個目錄里。
注意:將該虛擬目錄的執行權限設置為“腳本”,如果將執行權限設置為“腳本& 執行”的話,控件將不能正常激活。
4 配置代碼訪問權限
如果你是在intranet運行這個例子,并且沒有改變.net framework的安全策略,這個例子可以正確運行了。如果你改變了安全策略,或者你打算從internet網站運行,你需要配置internet explorer或者改變安全策略。一個辦法將控件運行和下載的頁面加入信任域。可以在internet explorer使用以下步驟完成:
1. 選擇“工具|選項”
2. 選擇"安全"項
3. 選擇"受信任的站點"
4. 點擊“站點”按鈕。
5. 添加你的站點
6. 點擊“確定”

你也可以配置.net framework安全策略。sdk文檔中包括了如何配置安全策略的內容。
5. 運行控件:
用ie瀏覽器里指明虛擬目錄和simplecontrol.html文件,即運行該控件。如果控件沒有被正常激活,則可能需要重啟一下ie或清空assembly下載緩存(assembly download cache)。
注意: 您可以使用gacutil /ldl查看您的assembly下載緩存的內容。可以使用gacutil /cdl清除緩存內容。
建議參考文章using windows forms controls in internet explorer(http://windowsforms.net/articles/iesourcing.aspx)。

cat: 謝謝你的回答,如何能得到全名(fully qualified name)?c#建立的控件都能用嗎?跟普通控件有區別嗎?我希望控件下載到客戶端運行的(出現安全警告沒關系),能行嗎?
答:上面的microsoft.samples.winforms.cs.simplecontrol.simplecontrol就是全名,你可以在項目的屬性對話框中設置根命名空間。一般建立的c#控件都可以使用,不過這方面還沒有確切的資料。一般控件下載不是大問題,只要安全選項設好了就可以。但是一個大問題是在沒有安裝過.net平臺的機器上需要安裝大約20m的.net平臺文件,有點麻煩。

商業源碼熱門下載www.html.org.cn

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新安县| 比如县| 乌审旗| 齐齐哈尔市| 来宾市| 洛隆县| 南雄市| 溆浦县| 柯坪县| 巴南区| 饶阳县| 洪洞县| 莱西市| 桓台县| 磴口县| 新闻| 司法| 介休市| 丰城市| 邯郸市| 永年县| 梧州市| 宜春市| 孟连| 广东省| 龙门县| 焉耆| 皮山县| 谷城县| 临泽县| 抚顺市| 博爱县| 双牌县| 昭觉县| 湟源县| 长宁县| 竹北市| 宣汉县| 临沧市| 吉林省| 安吉县|