在IE瀏覽器中使用Windows表單控制項(一)

來源:互聯網
上載者:User
window|控制項|瀏覽器 在IE瀏覽器中使用Windows表單控制項(一)

作者::Thiru Thangarathinam

翻譯:秋楓

引言

在過去,Web程式員經常在他們的Web程式中使用ActiveX控制項來實現一些胖用戶端才具有的功能。不過現在開發人員可以很容易的通過Microsoft.NET Framework來簡潔和安全的建立對象,並且方便的在IE瀏覽器中切入使用。通過在IE瀏覽器中建立Windows表單控制項,開發人員可以實現豐富的web用戶端。在這篇文章中,我們將會知道怎樣建立Windows表單控制項並且在IE中使用。在瀏覽器中使用表單控制項過程中,我們會示範怎樣通過表單控制項來提供豐富的web用戶端顯示,而表單控制項用來調用遠程Web service擷取資料。與此同時,我們也會知道怎樣利用.NET安全模型來為我們的表單控制項提供一個安全的運行環境。

如果你有過用Java開發Web程式的經驗,那你會很熟悉Java applets。它是一個運行在瀏覽器中的一個小程式。當瀏覽器開啟包含有Applet 標籤的HTML文檔時,Java applets就會運行。Windows表單在web頁裡的工作方式同Java applets很相似。在這個實現中,你建立表單控制項,並為他加上豐富的Windows表單控制項樣式,接著切入到Web頁面中。在瀏覽器載入該Web頁面的時候,Windows控制項所包含的代碼也會被執行。在區域網路或者擴充的網路程式中這個將會是很有用的。比如想開發一個企業使用的具有胖用戶端特性的基與web的程式。

.NET的一個重要特徵就是跟IE緊密結合。比如,我們可以在IE中使用Windows表單控制項,而不需要通知使用者需要加另外的東西。這個不需要註冊什麼.NET CLR就會提供代碼安全訪問的能力。

當你建立Windows表單控制項,你會有表單類層次提供的特徵。比如,你可以使用Windows表單控制項驗證技術來驗證輸入資料的準確性。同樣的,你甚至可以在你的表單控制項中調用Web Service。通過這些技術使用,你可以建立基與.NET平台的豐富的、健壯的、Live App程式。



備忘:按照原文重寫了代碼,把載圖替換成了中文,運行環境:作業系統windows2003,.NET Framework 1.1.這裡講幾點:調試過程中開啟瀏覽器輸入完整地址。如果以檔案方式開啟將不會顯示表單控制項;另外對於進程的調試,可以是單個源檔案。不過我啟動並執行是Debug版本下產生的組件,不是Release的,有興趣讀者可以試試。



執行

在這節,我們就會明白怎樣建立Windows表單控制項並在IE中使用。下面列出了五個步驟來完成這一過程。

1.建立Windows表單控制項

2.建立一個帶有object 標籤的HTML文檔,該標籤用來標識Windows控制項

3.配置控制項的虛擬路徑

4.設定代碼存取權限

5.運行控制項

接下來讓我們來看看上面的各個步驟。

1.建立一個windows表單控制項

在這一步中,我們建立一個簡單的Windows表單控制項。控制項實現的功能是顯示”Hello World”給使用者。我們先來建立一個Windows 控制項陳列庫項目取名為HelloWorldControl,修改預設的使用者控制項為HelloWorldCtl。接著在控制項中加入一個Label,取名為lblDisplayMessage,同時增加了一個按鈕btnClick。當使用者點擊按鈕時,將會執行下面的代碼用來顯示訊息給使用者。

private void btnClick_Click(object sender, System.EventArgs e)

{

this.lblDisplayMessage.Text = "Hello World";

}

接著就是編譯他產生一個Assembly。


2.建立HTML頁

在這一步中,我們將建立一個HTML文檔並在裡面插入object標籤。整個文檔看起來如下:

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

在這個標籤的classid 屬性中,我們指定第一步建立的那個組件的路徑以及組件完整限定名。整個完整名稱包括命名空間和整個類名。我們可以在上面的代碼中清楚的看到組件名和限定名用#分割。這兩部分參數組合在一起用來標識控制項的唯一性。當然可以通過取名唯一id為HelloWorldControl1來編寫用戶端指令碼。

3.配置虛擬路徑

有了HTML頁面,現在來建立一個HelloWorldControlHost的虛擬目錄,實際目錄在D:\My Programs\HellpWorldHost,該目錄包含了HelloWorldControl.dll和Hellpworld.htm檔案。當設定虛擬目錄的時候,需要注意的是設定執行許可權為“純指令碼”。如果設定成“指令碼和可執行指令碼”的許可權。那控制項可能不會正常工作(我在IIS6下設定成“指令碼和可執行指令碼”,不正常)。你可以開啟虛擬目錄的屬性來確認設定,設定視窗如下:


4.設定代碼存取權限

如果這個web在區域網路中訪問,他會正常工作。如果該Web是通過Internet來訪問,那你需要設定internet Explorer,修改安全屬性以允許他運行。你可以把首頁加入到受信任的網站。如果需要設定可以通過IE的工具菜單―>Internet選項->安全->受信任的網站,點擊上面的網站按鈕把你的網站加入其中。接下去,當你開啟瀏覽器查看,就會看到正確執行。

5.運行控制項

要運行這個控制項,我們在瀏覽器中查看包含了控制項的那個Html頁面。假如你在頁面上點擊這個按鈕,那麼控制項就會顯示“Hellp World”資訊,執行頁面如下:



在這個例子中,我們實現了怎樣建立件一個Windows表單控制項然後在IE瀏覽器中顯示。在下一節中我們來實現在用戶端瀏覽器上通過表單控制項來訪問Web Service。


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.