WinForm webbrowser控件的使用

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

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

先上一个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");
            }
        }

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

目录
相关文章
|
JavaScript 前端开发 C#
WPF技术之WebBrowser控件
WPF WebBrowser控件用于在WPF应用程序中嵌入浏览器功能。
289 0
|
C# 容器
在WPF中使用winform控件WebBrowser
在WPF中使用winform控件WebBrowser
|
API Windows 容器
WinForm——窗体总结
WinForm——窗体总结
248 0
WinForm——窗体总结
|
C# Windows 安全
WinForm控件与WPF控件的交互
原文:WinForm控件与WPF控件的交互 这个问题其实也可以理解为:怎样在WPF/XAML中使用Winform中的控件(如PictureBox)?首先看看XAML代码:(注意下面加粗的部分)              ...
1088 0
|
C# 容器
在WPF中使用WinForm控件方法
原文:在WPF中使用WinForm控件方法 1、      首先添加对如下两个dll文件的引用:WindowsFormsIntegration.dll,System.Windows.Forms.dll。
1255 0
|
C#
在Winform窗体中使用WPF控件(附源码)
原文:在Winform窗体中使用WPF控件(附源码) 今天是礼拜6,下雨,没有外出,闲暇就写一篇博文讲下如何在Winform中使用WPF控件。原有是我在百度上搜索相关信息无果,遂干脆动手自己实现。 WPF控件的漂亮是Winform无法匹及的,本文主旨是在Winform工程中如何使用WPF控件。
1925 0