資源描述:
《在c#窗體應用程序中載入web頁》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、用AxWebBrowser的準備"工具箱"->"添加/刪除項"->"COM組件"->"MicrosoftWeb瀏覽器"->對勾->確定IE樣的東西就上到工具箱上了,拖過來即可使用?我們知道,C#創(chuàng)建基于Web頁(Html)的AspC#應用程序,它使用MicrosoftInternetExplorer(IE)實現(xiàn)頁面的導航與瀏覽,對程序的導航控制通過IE自身提供的功能來實現(xiàn),這個時候,導航控制實際上與程序代碼是相對獨立的,這表現(xiàn)在你不需要為此編制相應的代碼也很難添加IE之外的其他控制。其實,不僅僅是C#應用程序能操作Web頁,C#創(chuàng)建的基于桌面的WindowsApplication
2、(窗體應用程序)也能操作Web頁。不同的是,這種開發(fā)僅有C#基類支持是不夠的,你還需要借助一種特殊的COM-ActiveX控件?;谧烂娴腤indows(窗體)應用程序顯然,即便在基于桌面的Windows應用程序下,也有很多地方跟Web文件打交道。本地的Html文件,網(wǎng)絡傳輸中的Html文件,等等。這些包含豐富圖文信息的Web文件,有時候需要作為應用程序的一部分進行操作。雖然,C#豐富的基類對文件(當然也包括.Html格式的Web文件)的讀寫提供了大量的支持,對文件內(nèi)容的顯示也提供了豐富的控件(如Windows標準控件ListBox、Label等),然而,這種通常意義下的輸出只能
3、將文件顯示為純文本字符或二進制數(shù)據(jù),還無法直接在Windows應用程序中原樣顯示Html界面樣式而保持Web文件"圖文并茂、導航自如"的優(yōu)點。即便這樣,C#名字空間Diagnostics還是提供了類Process以支持在應用程序中操作Web文件、實現(xiàn)InternetExplorer界面樣式,以部分滿足我們的需求。1、使用Process類下面的講解將借助實例來進行,并逐步擴充程序代碼。為測試效果,請在VisualStudioC#IDE中構(gòu)建VisualC#窗體應用程序WebPageInWindowsApplicaion。在窗體上添加按鈕"buttonStart",添加文本框"tex
4、tBoxUrl",導入名字空間System.Diagnostics(usingSystem.Diagnostics;),在按鈕"buttonStart"的Click事件中添加以下代碼:privatevoidStart_Click(objectsender,System.EventArgse){???????Processp=newProcess();//實例化進程對象???????stringurl=textBoxUrl.Text.Trim();//獲取輸入的Url???????//StartInfo用于設置啟動進程所需參數(shù)???????p.StartInfo.FileName=
5、"iexplore.exe";//設置要啟動的應用程序或文檔???????p.StartInfo.Arguments=url;//設置啟動所需命令行參數(shù)???????p.Start();//將進程與Process組件關(guān)聯(lián)并啟動}代碼很簡單,每行后的注釋足夠可以解釋清楚了。需要注意的是,在使用Process.Start()方法啟動該進程前至少必須設置FileName文件名屬性,以指定提供支持的目標應用程序或文檔。試著在文本框中輸入"http://developer.ccidnet.com/pub/disp/Column?columnID=287"(當然,你也可以在程序中硬編碼文本框
6、內(nèi)容,無論怎樣,你需要確保該URL的有效性),單擊Start按鈕,IE瀏覽器將打開,Web頁面被正確顯示。不過,你很容易就能看到,打開的IE瀏覽器并不包含在應用程序(主)窗體中,而是重新載入了IE瀏覽器,就象你通常在IE地址欄里輸入URL瀏覽頁面一樣;的確,在這里,IE瀏覽器被作為一個新的、單獨的窗口打開,這以后就不再與應用程序關(guān)聯(lián),或者說,不再受應用程序的控制了。一般地,這不是我們所需要的。要真正讓Web頁與應用程序融為一體,一種可行的解決方法是使用ActiveXControl-WebBrowser控件。2、ActiveX技術(shù)很明顯,即便C#富含大量類庫,但仍然不能完成所有的任
7、務,或者說,不能很輕松地完成所有任務。很長一段時間里,由WindowsAPI、COM(COM+)、ActiveXControl提供的許多功能在C#中將得到支持,使用它們在一定程度上為編程提供簡化。其中,ActiveX是Microsoft提出的一組使用COM(ComponentObjectModel,組件對象模型)使軟件部件在特定環(huán)境中進行交互的技術(shù)集。它與具體的編程語言無關(guān)。作為針對Internet應用開發(fā)的技術(shù),ActiveX被廣泛應用于WEB服務器以及客戶端的各個方面。同時,