C# WebBrowser控件
1、主要用途:使用户可以在窗体中导航网页。
2、注意:WebBrowser 控件会占用大量资源。使用完该控件后一定要调用 Dispose 方法,以便确保及时释放所有资源。必须在附加事件的同一线程上调用 Dispose 方法,该线程应始终是消息或用户界面 (UI) 线程。
3、WebBrowser 使用下面的成员可以将控件导航到特定 URL、在导航历史记录列表中向后和向前移动,还可以加载当前用户的主页和搜索页:
1.URL属性:可读、可写,用于获取或设置当前文档的 URL。
WebBrowser 控件维护浏览会话期间访问的所有网页的历史记录列表。设置Url属性时,WebBrowser 控件导航到指定的 URL 并将该 URL 添加到历史记录列表的末尾。
WebBrowser 控件在本地硬盘的缓存中存储最近访问过的站点的网页。每个页面都可以指定一个到期日期,指示页面在缓存中保留的时间。当控件定位到某页时,如果该页具有缓存的版本,则直接显示缓存中的内容而不必重新下载该页,从而节省了时间。使用 Refresh 方法强制 WebBrowser控件通过下载来重新加载当前页,从而确保控件显示最新版本。
注意:即使已请求了另一个文档,该属性也包含当前文档的 URL。如果设置该属性的值,然后立即再次检索该值,要是 WebBrowser 控件尚未来得及加载新文档,则检索到的值可能与设置的值不同。
2.Navigate方法: 将指定位置的文档加载到 WebBrowser 控件中。
3.GoBack方法:如果导航历史记录中的上一页可用,则将 WebBrowser 控件导航到该页。
如果导航成功,则返回true;如果导航历史记录中的上一页不可用,则返回false。
WebBrowser 控件维护浏览会话期间访问的所有网页的历史记录列表。可以使用GoForward方法实现一个“后退”按钮。
使用 CanGoBack 属性确定导航历史记录是否可用以及是否包含上一页。处理 CanGoBackChanged 事件,在 CanGoBack 属性值更改时接收通知。
4.GoForward方法:如果导航历史记录中的下一页可用,则将 WebBrowser 控件导航到该页。
如果导航成功,则返回true;如果导航历史记录中的下一页不可用,则返回false。
WebBrowser 控件维护浏览会话期间访问的所有网页的历史记录列表。可以使用 GoForward 方法实现一个“前进”按钮.
使用 CanGoForward 属性确定导航历史记录是否可用以及是否包含当前页之后的页。处理 CanGoForwardChanged 事件,在 CanGoForward 属性值更改时接收通知
5.GoHome方法:将 WebBrowser 控件导航到当前用户的主页。
6.GoSearch方法:将 WebBrowser 控件导航到当前用户的默认搜索页。
默认搜索页存储在注册表的 HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Search Page 注册表项下。
若要使用其他搜索页而不是默认搜索页,请调用 Navigate 方法或指定 Url 属性。
7.Refresh方法:重新加载当前显示在 WebBrowser 控件中的文档。
8.Stop方法:取消所有挂起的导航并停止所有动态页元素(如背景声音和动画)。
如果导航不成功,则显示一页指示出现的问题。使用这些成员中的任何一个进行导航都会导致在导航的不同阶段发生 Navigating、Navigated 和DocumentCompleted 事件。
4、ObjectForScripting 属性:获取或设置一个对象,该对象可由显示在 WebBrowser 控件中的网页所包含的脚本代码访问。
使用该属性启用 WebBrowser 控件承载的网页与包含 WebBrowser 控件的应用程序之间的通信。使用该属性可以将动态 HTML (DHTML) 代码与客户端应用程序代码集成在一起。为该属性指定的对象可作为 window.external 对象(用于主机访问的内置 DOM 对象)用于网页脚本。
可以将此属性设置为希望其公共属性和方法可用于脚本代码的任何 COM 可见的对象。可以通过使用 ComVisibleAttribute 对类进行标记使其成为 COM 可见的类。
若要从客户端应用程序代码调用网页中定义的函数,请使用可从 Document 属性检索的 HtmlDocument 对象的 HtmlDocument.InvokeScript 方法。
5、AllowNavigation属性:获取或设置一个值,该值指示控件在加载其初始页之后是否可以导航到其他页。
6、AllowWebBrowserDrop属性:获取或设置一个值,该值指示 WebBrowser 控件是否导航到拖放到它上面的文档。
7、WebBrowserShortcutsEnabled属性:是否启用WebBrowser自带的快捷键。
8、ScriptErrorsSuppressed 属性:获取或设置一个值,该值指示出现脚本错误时,WebBrowser 控件是否显示错误对话框。
9、IsWebBrowserContextMenuEnabled属性:是否启用右键菜单。
using System; using System.Windows.Forms; namespace WebBrowser控件 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnUrl_Click(object sender, EventArgs e) { Uri u; if (txtUrl.Text.StartsWith("http://")|| txtUrl.Text.StartsWith("https://"))//判断输入字符串开头是否带有 http:// 或 https:// { u = new Uri(txtUrl.Text);//初始化 } else { u = new Uri("http://"+txtUrl.Text);//添加 http:// 初始化 } txtUrl.Text = u.ToString();//赋值 webBrowser1.Url = u;//获取或设置当前文档的 URL。 } } }
输出结果: