WebBrowser
一個NET控制項類
WebBrowser是一個.NET控制項類,在NETFramework2.0版中新增。WebBrowser類使用戶可以在窗體中導航網頁,WebBrowser控制項具有多個與導航相關的屬性、方法和事件,WebBrowser控制項不能由部分受信任的代碼使用。。
WebBrowser的命名空間是System.Windows.Forms,程序集包括System.Windows.Forms(在system.windows.forms.dll中),WebBrowser控制項會佔用大量資源。使用完該控制項后一定要調用Dispose方法,以便確保及時釋放所有資源。必須在附加事件的同一線程上調用Dispose方法,該線程應始終是消息或用戶界面(UI)線程。
語
Visual Basic()
Visual Basic(用法)
DiminstanceAsWebBrowser
C#
[ComVisibleAttribute(true)][ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)]publicclassWebBrowser:WebBrowserBase
C++
[ComVisibleAttribute(true)][ClassInterfaceAttribute(ClassInterfaceType::AutoDispatch)]publicrefclassWebBrowser:publicWebBrowserBase
J#
**@attributeClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)*/publicclassWebBrowserextendsWebBrowserBase
JavaScript
ComVisibleAttribute(true)ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)publicclassWebBrowserextendsWebBrowserBase
備註
使用WebBrowser控制項可以在Windows窗體應用程序中承載網頁以及支持瀏覽器的其他文檔。例如,可以使用WebBrowser控制項在應用程序中提供基於HTML的集成用戶幫助或Web瀏覽功能。此外,還可以使用WebBrowser控制項向Windows窗體客戶端應用程序添加基於Web的現有控制項。
WebBrowser是IE內置的瀏覽器控制項,無需用戶下載。本文檔所討論的是有關IE6.0版本的WebBrowser控制項技術內容。其他版本的IE應該也支持。與其相關的技術要求有:列印文檔的生成、頁面設置、列印操作的實現等幾個環節。
一、WebBrowser控制項
二、WebBrowder控制項的方法
列印
WebBrowser1.ExecWB(6,1);
列印設置
WebBrowser1.ExecWB(8,1);
列印預覽
WebBrowser1.ExecWB(7,1);
使用下面的成員可以將控制項導航到特定URL、在導航歷史記錄列表中向後和向前移動,還可以載入當前用戶的主頁和搜索頁:
Url
Navigate
GoBack
GoForward
GoHome
GoSearch
如果導航不成功,則顯示一頁指示出現的問題。使用這些成員中的任何一個進行導航都會導致在導航的不同階段發生Navigating、Navigated和DocumentCompleted事件。
使用這些成員和其他成員(如Stop和Refresh方法)可以在應用程序中實現與InternetExplorer中的用戶界面控制項類似的用戶界面控制項。即使不希望在窗體上顯示WebBrowser控制項,某些成員也十分有用。例如,可以使用Print方法列印網頁的最新版本,而不向用戶顯示該頁。
使用WebBrowser控制項還可以顯示在應用程序中創建的內容或從資料庫或資源文件檢索的內容。使用DocumentText或DocumentStream屬性,以字元串或數據流的形式獲取或設置當前文檔的內容。
還可以通過Document屬性操作網頁的內容,該屬性包含一個HtmlDocument對象,向當前頁提供對HTML文檔對象模型(DOM)的託管訪問。該屬性與ObjectForScripting屬性組合使用時,對在應用程序代碼與網頁中的動態HTML(DHTML)代碼之間實現雙向通信十分有用,使用它可以在單個用戶界面中組合基於Web的控制項和Windows窗體控制項。在應用程序中可以使用Document屬性調用腳本代碼方法。腳本代碼可以通過window.external對象訪問應用程序,該對象是用於主機訪問的內置DOM對象,它映射到為ObjectForScripting屬性指定的對象。
注意
該類要求類級別上的安全性。如果派生類或調用堆棧中的任何調用方不具有完全信任許可權,則會引發SecurityException。有關安全要求的詳細信息,請參見鏈接要求和繼承要求。
注意
WebBrowser類僅能用於設置為單線程單元(STA)模式的線程。若要使用此類,請確保使用STAThreadAttribute屬性標記Main方法。
WindowsMobileforPocketPC,WindowsMobileforSmartphone,WindowsCE平台說明:要實現.NETCompactFramework應用程序中的WebBrowser的完整功能,需要用於PocketPC和Smartphone的WindowsMobile5.0版軟體。有關更多信息,請參見如何:在.NETCompactFramework中使用WebBrowser控制項。
下面的代碼示例演示如何使用WebBrowser控制項實現地址欄。此示例要求窗體包含一個名為webBrowser1的WebBrowser控制項、一個名為TextBoxAddress的TextBox控制項和一個名為ButtonGo的Button控制項。在文本框中鍵入URL並按Enter或單擊“轉到”按鈕時,WebBrowser控制項會定位至指定的URL。通過單擊超鏈接進行定位時,文本框會自動更新以顯示當前URL。
'NavigatestotheURLintheaddressboxwhen
'theENTERkeyispressedwhiletheToolStripTextBoxhasfocus.
PrivateSubtoolStripTextBox1_KeyDown(_
ByValsenderAsObject,ByValeAsKeyEventArgs)_
HandlestoolStripTextBox1.KeyDown
If(e.KeyCode=Keys.Enter)Then
Navigate(toolStripTextBox1.Text)
EndIf
EndSub
'NavigatestotheURLintheaddressboxwhen
'theGobuttonisclicked.
PrivateSubgoButton_Click(_
ByValsenderAsObject,ByValeAsEventArgs)_
HandlesgoButton.Click
Navigate(toolStripTextBox1.Text)
EndSub
'NavigatestothegivenURLifitisvalid.
PrivateSubNavigate(ByValaddressAsString)
IfString.IsNullOrEmpty(address)ThenReturn
Ifaddress.Equals("about:blank")ThenReturn
IfNotaddress.StartsWith("http://")And_
Notaddress.StartsWith("https://")Then
address="http://"&address
EndIf
Try
webBrowser1.Navigate(NewUri(address))
CatchexAsSystem.UriFormatException
Return
EndTry
EndSub
'UpdatestheURLinTextBoxAddressuponnavigation.
PrivateSubwebBrowser1_Navigated(ByValsenderAsObject,_
ByValeAsWebBrowserNavigatedEventArgs)_
HandleswebBrowser1.Navigated
toolStripTextBox1.Text=webBrowser1.Url.ToString()
EndSub
C#
C++
繼承層次結構
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
System.Windows.Forms.Control
System.Windows.Forms.WebBrowserBase
System.Windows.Forms.WebBrowser
線程安全
此類型的任何公共靜態(VisualBasic中的Shared)成員都是線程安全的,但不保證所有實例成員都是線程安全的。
平台
Windows98、Windows2000SP4、WindowsCE、WindowsMillenniumEdition、WindowsMobileforPocketPC、WindowsMobileforSmartphone、WindowsServer2003、WindowsXPMediaCenterEdition、WindowsXPProfessionalx64Edition、WindowsXPSP2、WindowsXPStarterEdition
.NETFramework並不是對每個平台的所有版本都提供支持。有關受支持版本的列表,請參見系統要求。
版本信息
.NETFramework
受以下版本支持:2.0
.NETCompactFramework
受以下版本支持:2.0
請參見
參考
WebBrowser成員
System.Windows.Forms命名空間
其他資源
WebBrowser控制項(Windows窗體)
通過部分受信任的代碼使用庫