WebBrowser控件的常用方法:
Navigate(string urlString):浏览urlString表示的网址
Navigate(System.Uri url):浏览url表示的网址
Navigate(string urlString, string targetFrameName, byte[] postData, string additionalHeaders):
浏览urlString表示的网址,并发送postData中的消息
(通常我们登录一个网站的时候就会把用户名和密码作为postData发送出去)
GoBack():后退
GoForward():前进
Refresh():刷新
Stop():停止
GoHome():浏览主页
WebBrowser控件的常用属性:
Document:获取当前正在浏览的文档
DocumentTitle:获取当前正在浏览的网页标题
StatusText:获取当前状态栏的文本
Url:获取当前正在浏览的网址的Uri
ReadyState:获取浏览的状态
WebBrowser控件的常用事件:
DocumentTitleChanged,
CanGoBackChanged,
CanGoForwardChanged,
DocumentTitleChanged,
ProgressChanged,
ProgressChanged
这几个意思很明显,就不细说了。
Navigating,开始导航
Navigated,导航完成并开始装载文档
DocumentCompleted:按理应该是整个文档装载完成,即网页完全显示完才发生,但事实上似乎不是,所以还是慎用这个事件。用ReadyState来判断是否完全装载完成更好。
这些方法、属性、事件,对于实际浏览来说并不够,因为你要能处理弹出新窗口的信息,就算是你要强制所有的链接都在同一窗口内打开,你也要知道使用者点了什么链接吧。但是WebBrowser竟然没有提供这个事件,有一个NewWindow事件,在使用者点击链接将要弹出新窗口时发生,但是这个事件没有什么有用的参数,你根本就不知道使用者要打开的是什么链接。可见WebBrowser的设计者很不负责。为了解决这个问题,必须借助ShDocVw.dll。工程--添加引用--COM--Microsoft Internet Controls--确定,就可以把ShDocVw.dll添加到工程中了,然后我们就可以这样:
//(假设wb是一个已经存在的WebBrowser) wb.Navigate("about:blank"); ((SHDocVw.DWebBrowserEvents_Event)wb.ActiveXInstance).NewWindow+=BrowserNewWindow; DWebBrowserEvents_Event是一个接口,它提供了NewWindow事件,这个事件带有详细的参数。
BrowserNewWindow就是NewWindow事件的处理程序:
void BrowserNewWindow(string url, int flag, string target, ref object data, string header, ref bool processed) { processed=true; wb.Navigate(url, null, (byte[])data, header); } processed=true的目的是为了防止新窗口在ie中打开。
除了DWebBrowserEvents_Event,还有一个DWebBrowserEvents2_Event接口,同样可以实现上述功能,区别是后者适用于ie7以上的浏览器,当然前者也可用于ie7,只是不能利用其新特性而已(如在新窗口中打开链接和在新标签中打开链接是两个不同的事件(NewWindow2,NewWindow3))。 [C语言系列]C# Webbrowser控件屏蔽弹出窗口(广告) [C语言系列]C#中combobox 控件属性、事件、方法(部分常用) [VB.NET程序]Combobox属性及使用方法详解 [网站推广]网站推广的几种常用方法 [办公软件]PPT插入Flash其属性无自定义的两种解决办法 [办公软件]VBA设置文件属性及加密源代码示例 [Web开发]NET操作IIS(添加虚拟目录、更改虚拟目录属性、删… [Web开发]动态添加控件、设置控件属性并获得控件属性值 [平面设计]Flash动作脚本Actiong之属性、数组、Color颜色、D… [平面设计]Flash交互动作之鼠标事件及编码说明
|