您的位置:首页 > 编程语言 > C#

C#之WinForm WebBrowser实用技巧汇总

2017-09-29 15:38 531 查看
本文实例汇总了C#中WinForm WebBrowser常见的实用技巧,对于C#程序开发来说有不错的借鉴价值。分别叙述如下:

方法1:获取状态栏信息

?
方法2:页面跳转后改变地址栏地址

?
方法3:设置单选框

?
方法4:设置联动型下拉列表

?
方法5:在WinForm中响应Web事件

假设HTML源代码如下:

?
?
很简单吧?那么稍稍高级一点的——我们都知道一个HTML元素可能有很多各种各样的事件,而HtmlElement这个类只给出最常用、共通的几个。那么,如何响应其他事件呢?这也很简单,只需要调用HtmlElement的AttachEventHandler就可以了:

?
这一句等价于上面的btnElement.click += new HtmlElementEventHandler(HtmlBtnClose_Click);

对于其他事件,把"onclick"换成该事件的名字就可以了。例如:

?
 

方法6:模拟表单自动填写和提交

假设有一个最简单的登录页面,输入用户名密码,点“登录”按钮即可登录。已知用户名输入框的id(或Name,下同)是username,密码输入框的id是password,“登录”按钮的id是submitbutton,那么我们只需要在webBrowser的DocumentCompleted事件中使用下面的代码即可:

?
关于表单的提交,的确还有另一种方法就是获取form元素而不是button,并用form元素的submit方法:

?
本文之所以没有推荐这种方法,是因为现在的网页,很多都在submit按钮上添加onclick事件,以对提交的内容做最基本的验证。如果直接使用form的submit方法,这些验证代码就得不到执行,有可能会引起错误。

方法7:调用脚本

首先是调用Web页面的脚本中已经定义好的函数。假设HTML中有如下Javascript:

?
那么,我们要在WinForm调用它,只需如下代码即可:

?
其次,如果我们想执行一段Web页面中原本没有的脚本,该怎么做呢?这次.Net的类没有提供,看来还要依靠COM了。IHTMLWindow2可以将任意的字符串作为脚本代码来执行。

?
最后:在脚本中调用WinForm里的代码,这个可能吗? 呵呵,当然是可能的。

下面的代码示例演示如何使用 ObjectForScripting 属性。在该示例中,ObjectForScripting 属性被设置为当前窗体。

?
相信本文所述实例对大家的C#程序设计有一定的借鉴价值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: