求WebBrowser的各属性 方法介绍

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求WebBrowser的各属性 方法介绍相关的知识,希望对你有一定的参考价值。

求WebBrowser的各属性 方法介绍
在自制浏览器中怎么调用网页中的事件啊?
解决问题后另外开贴给分

WebBrowser 的事件 :
BeforeNavigate2 导航发生前激发,刷新时不激发
CommandStateChange 当命令的激活状态改变时激发。它表明何时激活或关闭Back和Forward
菜单项或按钮
DocumentComplete 当整个文档完成是激发,刷新页面不激发
DownloadBegin 当某项下载操作已经开始后激发,刷新也可激发此事件
DownloadComplete 当某项下载操作已经完成后激发,刷新也可激发此事件
NavigateComplete2 导航完成后激发,刷新时不激发
NewWindow2 在创建新窗口以前激发
OnFullScreen 当FullScreen属性改变时激发。该事件采用VARIENT_BOOL的一个输
入参数来指示IE是全屏显示方式(VARIENT_TRUE)还是普通显示方式(VARIENT_FALSE)
OnMenuBar 改变MenuBar的属性时激发,标示参数是VARIENT_BOOL类型的。
VARIANT_TRUE是可见,VARIANT_ FALSE是隐藏
OnQuit 无论是用户关闭浏览器还是开发者调用Quit方法,当IE退出时就会激发
OnStatusBar 与OnMenuBar调用方法相同,标示状态栏是否可见。
OnToolBar 调用方法同上,标示工具栏是否可见。
OnVisible 控制窗口的可见或隐藏,也使用一个VARIENT_BOOL类型的参数
StatusTextChange 如果要改变状态栏中的文字,这个事件就会被激发,但它并不理会程序是否有状态栏
TitleChange Title有效或改变时激发

////////////////////////////......
WebBrowser控件说明

方法 说明
GoBack 相当于IE的“后退”按钮,使你在当前历史列表中后退一项

GoForward 相当于IE的“前进”按钮,使你在当前历史列表中前进一项
GoHome 相当于IE的“主页”按钮,连接用户默认的主页
GoSearch 相当于IE的“搜索”按钮,连接用户默认的搜索页面
Navigate 连接到指定的URL
Refresh 刷新当前页面
Refresh2 同上,只是可以指定刷新级别,所指定的刷新级别的值来自RefreshConstants枚举表,
该表定义在ExDisp.h中,可以指定的不同值如下:
REFRESH_NORMAL 执行简单的刷新,不将HTTP pragma: no-cache头发送给服务器
REFRESH_IFEXPIRED 只有在网页过期后才进行简单的刷新
REFRESH_CONTINUE 仅作内部使用。在MSDN里写着DO NOT USE! 请勿使用
REFRESH_COMPLETELY 将包含pragma: no-cache头的请求发送到服务器

Stop 相当于IE的“停止”按钮,停止当前页面及其内容的载入

属性 说明
Application 如果该对象有效,则返回掌管WebBrowser控件的应用程序实现的自动化对象(IDispatch)。如果在宿主对象中自动化对象无效,这个程序将返回WebBrowser
控件的自动化对象
Parent 返回WebBrowser控件的父自动化对象,通常是一个容器,例如是宿主或IE窗口
Container 返回WebBrowser控件容器的自动化对象。通常该值与Parent属性返回的值相同
Document 为活动的文档返回自动化对象。如果html当前正被显示在WebBrowser中,则
Document属性提供对DHTML Object Model的访问途径
TopLevelContainer 返回一个Boolean值,表明IE是否是WebBrowser控件顶层容器,是就返回true

Type 返回已被WebBrowser控件加载的对象的类型。例如:如果加载.doc文件,就会返
回Microsoft Word Document
Left 返回或设置WebBrowser控件窗口的内部左边与容器窗口左边的距离
Top 返回或设置WebBrowser控件窗口的内部左边与容器窗口顶边的距离
Width 返回或设置WebBrowser窗口的宽度,以像素为单位
Height 返回或设置WebBrowser窗口的高度,以像素为单位
LocationName 返回一个字符串,该字符串包含着WebBrowser当前显示的资源的名称,如果资源
是网页就是网页的标题;如果是文件或文件夹,就是文件或文件夹的名称
LocationURL 返回WebBrowser当前正在显示的资源的URL
Busy 返回一个Boolean值,说明WebBrowser当前是否正在加载URL,如果返回true
就可以使用stop方法来撤销正在执行的访问操作

WebBrowser 的事件
Private Events Description
BeforeNavigate2 导航发生前激发,刷新时不激发
CommandStateChange 当命令的激活状态改变时激发。它表明何时激活或关闭Back和Forward
菜单项或按钮
DocumentComplete 当整个文档完成是激发,刷新页面不激发
DownloadBegin 当某项下载操作已经开始后激发,刷新也可激发此事件
DownloadComplete 当某项下载操作已经完成后激发,刷新也可激发此事件
NavigateComplete2 导航完成后激发,刷新时不激发
NewWindow2 在创建新窗口以前激发
OnFullScreen 当FullScreen属性改变时激发。该事件采用VARIENT_BOOL的一个输
入参数来指示IE是全屏显示方式(VARIENT_TRUE)还是普通显示方式(VARIENT_FALSE)
OnMenuBar 改变MenuBar的属性时激发,标示参数是VARIENT_BOOL类型的。
VARIANT_TRUE是可见,VARIANT_ FALSE是隐藏
OnQuit 无论是用户关闭浏览器还是开发者调用Quit方法,当IE退出时就会激发
OnStatusBar 与OnMenuBar调用方法相同,标示状态栏是否可见。
OnToolBar 调用方法同上,标示工具栏是否可见。
OnVisible 控制窗口的可见或隐藏,也使用一个VARIENT_BOOL类型的参数
StatusTextChange 如果要改变状态栏中的文字,这个事件就会被激发,但它并不理会程序是否有状态栏
TitleChange Title有效或改变时激发

补充:

The NewWindow2 event
The NewWindow2 event occurs when a new window is to be created for displaying a resource. This event occurs before a new window is created from the WebBrowser control. For example, this event occurs in response to a navigation that is targeted to a new window or to a scripted window.open method.

To specify that your browser program is to be used when a new window is opened, set the ppDisp parameter equal to a new WebBrowser object that is contained in a new window that your program creates. In this scenario, if a user chooses to open a Web page in a new window, the new window in your program is used to display the new Web page.

Additionally, set the RegisterAsBrowser property to TRUE. This setting causes the new WebBrowser control to participate in window-name resolution. For example, if the window name is used elsewhere in the script, this control is used instead of a newly created one because the control examines all the existing window names before opening a new window.
参考技术A WebBrowser控件说明(二)
WebBrowser 的事件 Private Events Description
BeforeNavigate2 导航发生前激发,刷新时不激发
CommandStateChange 当命令的激活状态改变时激发。它表明何时激活或关闭Back和Forward
菜单项或按钮
DocumentComplete 当整个文档完成是激发,刷新页面不激发
DownloadBegin 当某项下载操作已经开始后激发,刷新也可激发此事件
DownloadComplete 当某项下载操作已经完成后激发,刷新也可激发此事件
NavigateComplete2 导航完成后激发,刷新时不激发
NewWindow2 在创建新窗口以前激发
OnFullScreen 当FullScreen属性改变时激发。该事件采用VARIENT_BOOL的一个输
入参数来指示IE是全屏显示方式(VARIENT_TRUE)还是普通显示方式(VARIENT_FALSE)
OnMenuBar 改变MenuBar的属性时激发,标示参数是VARIENT_BOOL类型的。
VARIANT_TRUE是可见,VARIANT_ FALSE是隐藏
OnQuit 无论是用户关闭浏览器还是开发者调用Quit方法,当IE退出时就会激发
OnStatusBar 与OnMenuBar调用方法相同,标示状态栏是否可见。
OnToolBar 调用方法同上,标示工具栏是否可见。
OnVisible 控制窗口的可见或隐藏,也使用一个VARIENT_BOOL类型的参数
StatusTextChange 如果要改变状态栏中的文字,这个事件就会被激发,但它并不理会程序是否有状态栏
TitleChange Title有效或改变时激发

参考资料:http://www.cnblogs.com/abccd/articles/132501.html

参考技术B 不行

C#窗体 webBrowser控件赋值后无法编辑~~~~~

一个第三方控件,htmleditor,功能为可以为文本设置样式,并生成html代码,主体为webbrowser控件,通过属性达到效果。

但是通过代码给该控件赋值后,控件就像是被锁定了一样,无法编辑,但是可以设置样式。

如果不是通过代码赋值,是通过键盘键入的话,他就是编辑模式,并且输出他的值,输出的是带有html代码的文本。

但是如果是通过代码赋值,只能输出纯文本,任何html代码都没有。

求解决,让该控件可以通过代码赋值也可以编辑。

webbrowser控件赋值后无法编辑。

我所理解的htmleditor控件是一个Asp.Net的服务器控件,你使用的方式是什么样的呢?如果有些代码更好。追问

这个htmleditor是一个窗体的第三方控件- -

追答

能给我看一下这个控件的官方网站么,如果对这个控件一无所知我想谁也无法帮助到你。

能贴一下你的代码么?

追问

这个图片,后缀改为.rar  就是那个实例     可以看一看

追答

我在我的电脑上,点击通过代码赋值按钮后是能够继续进行编辑的,你的IE的版本是多少?

我的操作:启动程序-按下通过代码赋值按钮-输入其他文字-显示-过滤 都能够正常工作。

你的mshtml的版本是多少?Microsoft.mshtml.dll的版本。

追问

7.0.3300.0 ie是ie9 是 win7系统的问题?

追答

我的系统是Win XP,IE 8,在我的电脑上是能够继续输入文字的。你是否能够找一台xp的机器尝试一下??目前我自己机器以及其他同事的机器(都是windows xp)是能够正常执行的。

另外如果不行的话,尝试在HtmlEditor.cs的HtmlEditor类中加入下面代码:
private void SetupBrowser()

(this.webBrowserBody.Document.DomDocument as mshtml.IHTMLDocument2).designMode = "On";


同时在构造函数和Text属性的Set方法中加入该方法的调用

public HtmlEditor()

dataUpdate = 0;
InitializeComponent();
InitializeControls();
SetupBrowser();


public override string Text

get

return webBrowserBody.DocumentText;

set

webBrowserBody.DocumentText = value.Replace("\r\n", "");
SetupBrowser();



这是将文档设为可编辑的状态。

来自:求助得到的回答
参考技术A LZ 我朋友也遇到过这个问题。追问

那你朋友够帅的哈……

以上是关于求WebBrowser的各属性 方法介绍的主要内容,如果未能解决你的问题,请参考以下文章

<总结>delphi WebBrowser控件的使用中出现的bug

webbrowser轻松实现自动填表

C#winform程序怎么在webbrowser中打开网页???

C# winform 中的webBrowser1的网站打开后 怎么让弹窗在webBrowser2里面显示 而不是在IE浏览器显示 !

CefSharp For WPF响应页面点击事件

C#窗体 webBrowser控件赋值后无法编辑~~~~~