WinForm webbrowser控件的使用
发布日期:2021-10-24 14:20:20 浏览次数:1 分类:技术文章

本文共 1376 字,大约阅读时间需要 4 分钟。

webbrowser是一个比较实用的工具,主要用于在winform窗体中嵌入浏览器,达到winform与webform互操作的目的。

先上一个demo,看一下能实现什么效果。

 

[csharp]   
 
  1. private void Form1_Load(object sender, EventArgs e)  
  2. {  
  3.     this.webBrowser1.Url = new Uri("http://www.baidu.com");//指定url地址为百度首页  
  4. }  
  5.   
  6. private void button1_Click(object sender, EventArgs e)  
  7. {  
  8.     HtmlElement searchWords = webBrowser1.Document.All["kw"];//获取百度搜索的文本框  
  9.     HtmlElement searchButton = webBrowser1.Document.All["su"];//获取百度搜索的按钮  
  10.     searchWords.SetAttribute("value", "guwei4037");//给百度搜索的文本框赋值  
  11.     searchButton.InvokeMember("click");//调用百度搜索按钮的点击事件  
  12. }  

在winform中拖一个webbrowser控件,然后在相应事件中键入如上代码,就可以实现自助搜索(无需在文本框中输入关键词guwei4037,再点搜索按钮,而是直接点击一个按钮进行搜索)。

 

原理很简单,就是通过查找在webbrowser控件生成的html代码中的input元素或button元素的id,通过api实现模拟赋值和查找工作。

再附一个稍微复杂的一点的例子。

如果生成的html比较复杂,比如含iframe这类的标签时该如何处理呢?

比如,我们要访问qq空间里面的留言功能时,通过google chrome浏览器看到的html代码,很复杂,好在我们也有办法处理。

 

[csharp]   
 
  1. private void Form1_Load(object sender, EventArgs e)  
  2. {  
  3.     this.webBrowser1.Url = new Uri("http://user.qzone.qq.com/345822155/infocenter#!app=334&url=http%3A%2F%2Fctc.qzs.qq.com%2Fqzone%2Fmsgboard%2Fmsgbcanvas.html%23page%3D1");  
  4. }  
[csharp]   
 
  1. private void button1_Click(object sender, EventArgs e)  
  2. {  
  3.     if (!webBrowser1.IsBusy)//判断有没有加载新的文档  
  4.     {  
  5.         HtmlElement searchButton = webBrowser1.Document.Window.Frames["tgb"].Document.All["btnPostMsg"];//获取到iframe id为tgb下面的button  
  6.         searchButton.InvokeMember("click");  
  7.     }  
  8. }  

转载于:https://www.cnblogs.com/sanler/p/7249355.html

转载地址:https://blog.csdn.net/weixin_30791095/article/details/97938607 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:一个文本,每一行有两个时间,是一个用户的QQ在线时间和下线时间。统计出最多同时在线的用户数...
下一篇:不可错过的前端开发资源大荟萃

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月01日 18时11分19秒