當前位置:首頁>>開發(fā)編程>>VS.NET>>新聞內(nèi)容
實現(xiàn)在IE中托管.NET的Windows Form
作者:勵志人生 發(fā)布時間:2004-9-6 9:53:07 文章來源:yesky
  如果曾經(jīng)使用Java開發(fā)過Web應(yīng)用程序,你一定會對Java applets比較熟悉,這是一種基本上在瀏覽器中運行的小型程序。當瀏覽器加載包含有Java applets標志的HTML代碼時,Java applets就會執(zhí)行,網(wǎng)頁中的Windows Forms控件的運行方式與Java applets相似。我們可以使用由Windows Forms技術(shù)提供的豐富的類開發(fā)Windows Forms控件,然后在網(wǎng)頁中部署這些控件,當瀏覽器加載這些網(wǎng)頁時,就會執(zhí)行包含在Windows Forms控件中的代碼。

  .NET的偉大之處之一是它提供的與IE的無縫集成能力。例如,我們甚至能夠在用戶不知道的情況下從IE中激活一個Windows Forms控件。盡管利用了由.NET CLR提供的Code Access Security的所有功能,但這是在無需進行注冊的情況下完成的。

  當開發(fā)Windows Forms控件時,我們就通過繼承的方式擁有了Windows Forms類所提供的所有功能。例如,我們可以使用Windows Forms控件驗證技術(shù)對用戶輸入的數(shù)據(jù)進行廣泛的驗證,同樣地,我們可以從窗體控件中調(diào)用遠程Web服務(wù)。通過使用所有這些技術(shù),我們就能夠使用.NET平臺開發(fā)豐富、功能強大的應(yīng)用程序。

  實現(xiàn)

  在這一部分,我們將學習如何創(chuàng)建簡單的Windows Forms控件并將它托管在IE中。下面是激活I(lǐng)E中Windows Forms控件的5個步驟:

  ·創(chuàng)建Windows Forms控件。

  ·創(chuàng)建包含標識Windows Forms控件的對象標志的HTML文檔。

  ·配置正確激活控件所需要的虛擬目錄。

  ·配置代碼訪問權(quán)限。

  ·運行該控件。

  下面我們就來詳細地學習上面的每一個步驟。

  創(chuàng)建Windows Forms控件

  在這一步驟中,我們將創(chuàng)建一個簡單的Windows Forms控件,它向用戶顯示“Hello World”信息。如政略所示,我們將首先創(chuàng)建一個名為HelloWorldControl的新Visual C# Windows Control Library項目。

  一旦創(chuàng)建項目后,我們將把缺省的用戶控件更名為HelloWorldCtl。我們將在用戶控件上添加一個名為lblMessage的標簽控件和一個名為btnClick的按鈕。當用戶點擊點擊按鈕時,程序就會執(zhí)行下面的代碼,向用戶顯示一個簡單的信息:

private void btnClick_Click(object sender, System.EventArgs e)
{
 lblDisplayMessage.Text = "Hello World";
}

  既然已經(jīng)創(chuàng)建了控件,下面我們來編譯該項目,并創(chuàng)建可執(zhí)行代碼。

  創(chuàng)建HTML網(wǎng)頁

  在這一步驟中,我們將創(chuàng)建一個HTML文檔,并在其中插入用來激活Windows Forms控件的對象標志。HTML網(wǎng)頁如下:

<html>
<body>
<p>Hello World Control<br> <br></body>
<object id="HelloWorldControl1"classid="http:HelloWorldControl.dll#HelloWorldControl.HelloWorldCtl"
height="500" width="500" VIEWASTEXT>
</object>
<br><br>
</html>

  在對象標志的classid屬性中,我們將路徑指定為控件庫組合體和控件的全名,控件的全名包括名字空間和控件類名字。從上面的代碼中可以看到,組合體和控件全名之間用#號隔開,這二個參數(shù)構(gòu)成了識別該控件的唯一控件標識符。由于是唯一地由名字HelloWorldControl1標識的,我們還可以針對該控件編寫客戶端腳本代碼。

  配置虛擬目錄

  創(chuàng)建HTML代碼后,我們就可以創(chuàng)建一個名為HelloWorldControlHost的新虛擬目錄,并在其中添加控件(HelloWorldControl.dll)和HTML文檔(HelloWorld.htm)。除了配置虛擬目錄外,將虛擬目錄的執(zhí)行權(quán)限設(shè)置為Scripts也是非常重要的。如果將其執(zhí)行權(quán)限設(shè)置為Scripts & Executables,控件就不會被正確地激活。通過打開虛擬目錄的Properties窗口,我們可以驗證虛擬目錄的權(quán)限。

  配置代碼訪問權(quán)限

  如果控件在企業(yè)內(nèi)部網(wǎng)上,它公正確地執(zhí)行,但如果要運行來自互聯(lián)網(wǎng)網(wǎng)站上的控件,就需要對IE進行配置或修改安全策略,使它能夠運行。通過將托管網(wǎng)頁看成是受信任區(qū)段的一部分,就能夠做到這一點。為了將你的站點設(shè)置為受信任區(qū)段的一部分,我們可以在IE中通過選擇“工具”->“選項”->“安全”->“受信任的站點”,然后將你的站點添加到列表中,再點擊“OK”按鈕。這樣下次再瀏覽到該網(wǎng)頁時,控件就會得到正確的執(zhí)行,因為已經(jīng)設(shè)置了互聯(lián)網(wǎng)許可。

  運行控件

  要運行控件,只要在瀏覽器中瀏覽托管該控件的HTML網(wǎng)頁即可。在顯示的HTML網(wǎng)頁中,如果點擊“Click Here”命令按鈕,控件就會如下圖所示顯示“Hello World”的消息。

  在這個例子中,我們主要演習了如何創(chuàng)建簡單的Windows Forms控件,并在IE中托管它。


最新更新
·C#中使用Split分隔字符串的技
·VS2008開發(fā)中Windows Mobile
·PC機和移動設(shè)備上絕對路徑的
·C#程序加殼的方法(使用Sixx
·當前上下文中不存在名稱Conf
·請插入磁盤:Visual Studio 2
·用VS.NET讀取Flash格式文件信
·在ASP.NET中使用AJAX的簡單方
·VS.NET 2005中常用的一些代碼
·安裝VS.NET 2005 SP1補丁全攻
相關(guān)信息
·C#中使用Split分隔字符串的技巧
·PC機和移動設(shè)備上絕對路徑的獲取(C#)
·C#程序加殼的方法(使用Sixxpack)
·當前上下文中不存在名稱ConfigurationManager的解決方法
·C#的支付寶Payto接口代碼
·C#實現(xiàn)窗口最小化到系統(tǒng)托盤
·解密QQ的MsgEx.db消息文件格式
·QQ的TEA填充算法C#實現(xiàn)
·C#用Guid獲取不規(guī)則的唯一值(標識)
·基于Windows Mobile 5.0的掌上天氣預(yù)報設(shè)計
畫心
愚愛
偏愛
火苗
白狐
畫沙
犯錯
歌曲
傳奇
稻香
小酒窩
獅子座
小情歌
全是愛
棉花糖
海豚音
我相信
甩蔥歌
這叫愛
shero
走天涯
琉璃月
Nobody
我愛他
套馬桿
愛是你我
最后一次
少女時代
灰色頭像
斷橋殘雪
美了美了
狼的誘惑
我很快樂
星月神話
心痛2009
愛丫愛丫
半城煙沙
旗開得勝
郎的誘惑
愛情買賣
2010等你來
我叫小沈陽
i miss you
姑娘我愛你
我們都一樣
其實很寂寞
我愛雨夜花
變心的玫瑰
犀利哥之歌
你是我的眼
你是我的OK繃
貝多芬的悲傷
哥只是個傳說
丟了幸福的豬
找個人來愛我
要嫁就嫁灰太狼
如果這就是愛情
我們沒有在一起
寂寞在唱什么歌
斯琴高麗的傷心
別在我離開之前離開
不是因為寂寞才想你
愛上你等于愛上了錯
在心里從此永遠有個你
一個人的寂寞兩個人的錯