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");
            }
        }

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

目录
相关文章
|
C++ Windows
winform 程序打包成windows安装包
winform 程序打包成windows安装包前提:VS2019,winform 程序已经有一个完整可运行的 winform 程序。VS中上方扩展选项卡,选择 管理扩展,在打开的弹窗中选择联机,在右侧搜索框搜索 installer, 在中间显示的结果选择 Microsoft Visual Studio Installer Projects 点击下载。下载完成之后,关闭vs,自动打开扩展的安...
321 0
winform 程序打包成windows安装包
|
数据采集 JSON API
.NET 3.5 中 HttpWebRequest 的核心用法及应用
【9月更文挑战第7天】在.NET 3.5环境下,HttpWebRequest 类是处理HTTP请求的一个核心组件,它封装了HTTP协议的细节,使得开发者可以方便地发送HTTP请求并接收响应。本文将详细介绍HttpWebRequest的核心用法及其实战应用。
643 6
|
开发框架 前端开发 JavaScript
在Winform开发中,使用Async-Awati异步任务处理代替BackgroundWorker
在Winform开发中,使用Async-Awati异步任务处理代替BackgroundWorker
|
开发框架 前端开发 JavaScript
在Winform程序中使用Spire.Pdf实现页面添加印章处理
在Winform程序中使用Spire.Pdf实现页面添加印章处理
|
开发框架 .NET API
C#/.NET/.NET Core推荐学习书籍(24年8月更新)
C#/.NET/.NET Core推荐学习书籍(24年8月更新)
368 0
winform实现最小化至系统托盘
winform实现最小化至系统托盘
184 0
|
C#
C# Winform 选择文件夹和选择文件
C# Winform 选择文件夹和选择文件
203 0
|
C# 数据安全/隐私保护
ApeForms | C# WinForm窗体控件平滑减速运动
在桌面软件开发中,有时会需要控制窗体或控件移动以实现某些界面效果,比如幻灯片换页、侧面的展开栏等。 通常情况下我们会使用Timer以每隔一段时间修改一下坐标位置的方式来实现目标对象的位移效果,但通过这个方式实现的动效存在几个问题: 匀速运动效果生硬; 运动过程中不便灵活改变运动状态(如侧栏展开一半时令其收起); 动效多时需要创建多个Timer对象,不易管理且占用资源; ApeForms中为控件和窗体提供了平滑运动的扩展方法,很好的解决了这些问题。不仅是坐标的平滑运动,还有控件\窗体尺寸的平滑变化、透明度的平滑变化。允许在变化的中途随时更改目标坐标\尺寸\透明度,且使用共享的Timer
11602 1
ApeForms | C# WinForm窗体控件平滑减速运动