C WebBrowser页面与WinForm交互技巧.docx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

WebBrowser页面与WinForm

交互技巧

下面的代码假设你已经建立了一个WindowsForm,上面有一个WebBrowser名为“webBrowser”。

StudyCase1:用WinForm的EventHandler响应Web页面的事件

现在有这样一个WindowsApplication,它的界面上只有一个WebBrowser,显示一个本地的HTML文件作为界面。现在的问题是,所有逻辑都可以放在HTML文件里,唯独“关闭”按钮遇到了困难——通常,Web页面是没有办法直接控制浏览器的,更不用说结束这个WinForm程序了。

但是,在.Net2.0当中,“由WindowsForm响应Web页面的事件”已经成为了现实。

在.Net2.0中,整个HTML文档以及其包含的各个HTML元素,都和一个个HtmlDocument、HtmlElement之类的.Net对象对应。因此只要找到这个“关闭”按钮对应的HtmlElement对象,为其click事件添加EventHandler即可。

假设HTML源代码如下:

<html>

<body>

<inputtype="button"id="btnClose"value="关闭"/>

</body>

</html>

<html>

<html>

<body>

<inputtype="button"id="btnClose"value="关

</body>

</html>

闭"/>

那么找出该按钮并为之添加EventHandler的代码如下:

HtmlDocumenthtmlDoc=webBrowser.Document;HtmlElementbtnElement=htmlDoc.All["btnClose"];if(btnElement!=null)

{

btnElement.click+=newHtmlElementEventHandler(HtmlBtnClose_Click);

}

其中HtmlBtnClose_Click是按下Web按钮时的EventHandler。

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

btnElement.AttachEventHandler("onclick",newEventHandler(HtmlBtnClose_Click));

//这一句等价于上面的btnElement.click+=newHtmlElementEventHandler

(HtmlBtnClose_Click);

对于其他事件,把"onclick"换成该事件的名字就可以了。例如:formElement.AttachEventHandler("onsubmit",newEventHandler(HtmlForm_Submit));

StudyCase2:表单(form)的自动填写和提交

要使我们的WebBrowser具有自动填表、甚至自动提交的功能,并不困难。

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

HtmlElementbtnSubmit=webBrowser.Document.All["submitbutton"];HtmlElementtbUserid=webBrowser.Document.All["username"];HtmlElementtbPasswd=webBrowser.Document.All["password"];

if(tbUserid==null||tbPasswd==null||btnSubmit==null)

return;

tbUserid.SetAttribute("value","smalldust");tbPasswd.SetAttribute("value",);btnSubmit.InvokeMember("click");

这里我们用S

文档评论(0)

tianya189 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地湖北
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档