189 8069 5689

WinFormwebbrowser控件的使用

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

创新互联建站专注为客户提供全方位的互联网综合服务,包含不限于网站设计制作、成都网站设计、和政网络推广、小程序制作、和政网络营销、和政企业策划、和政品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联建站为所有大学生创业者提供和政建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com

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

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

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

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

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

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

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

private void Form1_Load(object sender, EventArgs e) 
{ 
    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"); 
}
private void button1_Click(object sender, EventArgs e) 
{ 
    if (!webBrowser1.IsBusy)//判断有没有加载新的文档 
    { 
        HtmlElement searchButton = webBrowser1.Document.Window.Frames["tgb"].Document.All["btnPostMsg"];//获取到iframe id为tgb下面的button 
        searchButton.InvokeMember("click"); 
    } 
}

更多信息,请参考:微软官方网站


网站题目:WinFormwebbrowser控件的使用
网页路径:http://jkwzsj.com/article/gejohh.html

其他资讯