C#中的WebBrowser控件的使用

【C# winform练习】利用控件实现浏览器功能的方法(webbrowser和WebKit) 大佬让我做一个在winform内查询gps定位地图的功能,没搞过。gps公司就扔给我们两个链接让我们自己调。想了一下,只要在winform里搞个类似浏览器的控件,查什么传什么参数就ok了。万事俱备,只差百度。 Webbrowser控件 首先考虑的肯定是winform自带的控件,webbrowser。使用起来非常的简单方便。 在工具箱——所有Windows窗体——webbrowser 直接拖到for... 阅读详情

常用方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Navigate(string urlString):浏览urlString表示的网址
Navigate(System.Uri url):浏览url表示的网址
Navigate(string urlString, string targetFrameName, byte[] postData, string additionalHeaders): 浏览urlString表示的网址,并发送postData中的消息
//(通常我们登录一个网站的时候就会把用户名和密码作为postData发送出去)
GoBack():后退
GoForward():前进
Refresh():刷新
Stop():停止
GoHome():浏览主页
WebBrowser控件的常用属性:
Document:获取当前正在浏览的文档
DocumentTitle:获取当前正在浏览的网页标题
StatusText:获取当前状态栏的文本
Url:获取当前正在浏览的网址的Uri
ReadyState:获取浏览的状态
WebBrowser控件的常用事件:
DocumentTitleChanged,
CanGoBackChanged,
CanGoForwardChanged,
DocumentTitleChanged,
ProgressChanged,
ProgressChanged

  1、获取非input控件的值:

1
2
3
webBrowser1.Document.All["控件ID"].InnerText;
或webBrowser1.Document.GetElementById("控件ID").InnerText;
或webBrowser1.Document.GetElementById("控件ID").GetAttribute("value");

  2、获取input控件的值:

1
2
webBrowser1.Document.All["控件ID"].GetAttribute("value");;
或webBrowser1.Document.GetElementById("控件ID").GetAttribute("value");

  3、给输入框赋值:

1
2
3
4
//输入框
user.InnerText = "myname";
password.InnerText = "123456";
webBrowser1.Document.GetElementById("password").SetAttribute("value", "Welcome123");

  4、下拉、复选、多选:

1
2
3
4
5
6
//下拉框:
secret.SetAttribute("value", "question1"); 
//复选框
rememberme.SetAttribute("Checked", "True");
//多选框
cookietime.SetAttribute("checked", "checked");

  5、根据已知有ID的元素操作没有ID的元素:

1
HtmlElement btnDelete = webBrowser1.Document.GetElementById(passengerId).Parent.Parent.Parent.Parent.FirstChild.FirstChild.Children[1].FirstChild.FirstChild;

  根据Parent,FirstChild,Children[1]数组,多少层级的元素都能找到。

6、获取Div或其他元素的样式:

1
webBrowser1.Document.GetElementById("addDiv").Style;

  7、直接执行页面中的脚本函数,带动态参数或不带参数都行:

1
2
3
4
Object[] objArray = new Object[1];
objArray[0] = (Object)this.labFlightNumber.Text;
webBrowser1.Document.InvokeScript("ticketbook", objArray);
webBrowser1.Document.InvokeScript("return false");

  8、自动点击、自动提交:

1
2
HtmlElement btnAdd = doc.GetElementById("addDiv").FirstChild;
btnAdd.InvokeMember("Click");

  9、自动赋值,然后点击提交按钮的时候如果出现脚本错误或一直加载的问题,一般都是点击事件执行过快,这时需要借助Timer控件延迟执行提交按钮事件:

1
2
3
4
5
6
7
this.timer1.Enabled = true;
this.timer1.Interval = 1000 * 2;
private void timer1_Tick(object sender, EventArgs e)
{
    this.timer1.Enabled = false;
    ClickBtn.InvokeMember("Click");//执行按扭操作
}

  10、屏蔽脚本错误:

1
将WebBrowser控件ScriptErrorsSuppressed设置为True即可

  11、自动点击弹出提示框:

IHtmlDocument2名称空间引用,添加com如下图

1
2
3
4
5
6
7
private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
  //自动点击弹出确认或弹出提示
  IHTMLDocument2 vDocument = (IHTMLDocument2)webBrowser1.Document.DomDocument;
  vDocument.parentWindow.execScript("function confirm(str){return true;} ", "javascript"); //弹出确认
  vDocument.parentWindow.execScript("function alert(str){return true;} ", "javaScript");//弹出提示
}

  WebBrowser页面加载完毕之后,在页面中进行一些自动化操作的时候弹出框的自动点击(屏蔽)

1
2
3
4
5
6
7
8
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    //自动点击弹出确认或弹出提示
    IHTMLDocument2 vDocument = (IHTMLDocument2)webBrowser1.Document.DomDocument;
    vDocument.parentWindow.execScript("function confirm(str){return true;} ", "javascript"); //弹出确认
    vDocument.parentWindow.execScript("function alert(str){return true;} ", "javaScript");//弹出提示
    //下面是你的执行操作代码
}

  12、获取网页中的Iframe,并设置Iframe的src

1
2
3
4
HtmlDocument docFrame = webBrowser1.Document.Window.Frames["mainFrame"].Document;
或
HtmlDocument docFrame = webBrowser1.Document.All.Frames["mainFrame"].Document;
docFrame.All["mainFrame"].SetAttribute("src", "http://www.baidu.com/");

  

13、网页中存在Iframe的时候webBrowser1.Url和webBrowser1_DocumentCompleted中的e.Url不一样,前者是主框架的Url,后者是当前活动框口的Url。


14、让控件聚焦

1
2
3
this.webBrowser1.Select();
this.webBrowser1.Focus();
doc.All["TPL_password_1"].Focus();

  15、打开本地网页文件

1
webBrowser1.Navigate(Application.StartupPath + @"\Test.html");

  16、获取元素、表单

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//根据Name获取元素
public HtmlElement GetElement_Name(WebBrowser wb,string Name)
{
    HtmlElement e = wb.Document.All[Name];
    return e;
}
 
//根据Id获取元素
public HtmlElement GetElement_Id(WebBrowser wb, string id)
{
    HtmlElement e = wb.Document.GetElementById(id);
    return e;
}
 
//根据Index获取元素
public HtmlElement GetElement_Index(WebBrowser wb,int index)
{
    HtmlElement e = wb.Document.All[index];
    return e;
}
 
//获取form表单名name,返回表单
public HtmlElement GetElement_Form(WebBrowser wb,string form_name)
{
    HtmlElement e = wb.Document.Forms[form_name];
    return e;
}
 
 
//设置元素value属性的值
public void Write_value(HtmlElement e,string value)
{
    e.SetAttribute("value", value);
}
 
//执行元素的方法,如:click,submit(需Form表单名)等
public void Btn_click(HtmlElement e,string s)
{
 
    e.InvokeMember(s);
}
C# Winform WebBrowser控件中的Html与C#后台的数据交互 winform因为其简陋的控件而为人所诟病,即使可以更改控件的样式,但操作繁琐而困难。好在其控件家族中有一个能兼容HTML的强大控件 --- WebBrowser,该控件中可添加html文件,来实现对各种js插件的支持,例如layui、easyui,或者Echarts.js等等。来达到BS端网页程序的效果。 阅读详情

相关推荐

C#|通过webBrowser控件实现与html间的相互传值

webBrowser控件实现C#与html间的相互传值

Nostaligaのブログ 6096

C# .NET 6.0已经取消了Framework 4.8的WebBrowser控件,几款NuGet中的浏览器控件介绍

技术是好的与坏的,好人用技术是更好的,坏人用技术是更坏的。CefSharp:CefSharp是一个基于Google Chrome的开源项目,它提供了一个强大的浏览器控件,可以在C#应用程序中嵌入和使用。请注意,WebView2控件是.NET 6.0中推荐使用的浏览器控件,因为它基于Chromium引擎,提供了更现代和强大的Web浏览体验。柏拉图在他的巨著《理想国》的第七卷里写到了洞穴理论阐明:一群从小被囚禁生活在洞穴里人,在洞穴外面的光线照明下,往内看是一片片黑影,往外看是光明的海阔天空,越看越明亮!

m0_58015531的博客 5100

C#中使用WebBrowser控件传递数值

首先,我们需要在Visual Studio中创建一个新的Windows Forms应用程序项目,并将WebBrowser控件添加到窗体上。WebBrowser控件是C#中常用的网络浏览器控件,它提供了浏览网页、显示HTML内容和与JavaScript进行交互的功能。上述代码中,我们创建了一个名为MainForm的Windows窗体,并在窗体的Load事件处理程序中加载了一个示例网页。在运行程序后,当点击按钮时,WebBrowser控件将执行JavaScript代码并将数值传递给页面中的。

PkbgRuby的博客 591

C# 网页控件的应用及绑定WebBrowser

一、WebBrowser使用步骤 今天做了一下WebBrowser的地图加载的需求,遇到了很多问题,今天把WebBrowser的设置,与C#如何请求网页中JavaScript方法的技巧总结了一下,仅供参考 1.设置属性 代码如下(示例): 所需命名空间: using System.Security.Permissions; 正文: namespace DemoForm { [System.Runtime.InteropServices.ComVisible(true)] [Permissi

GengGeng7777的博客 1880

C#中的WebBrowser控件实战指南

自定义导航按钮能够提供更为丰富的用户交互体验。通过自定义按钮,开发者可以控制webbrowser控件进行前进、后退和刷新等操作。// 为前进、后退按钮添加点击事件处理逻辑// 刷新按钮的点击事件处理逻辑在上述代码中,我们定义了三个按钮的点击事件处理逻辑,分别对应webbrowser控件的前进、后退和刷新操作。某些网站会根据用户代理(User-Agent)来决定是否允许访问或显示内容。可以使用webbrowser控件的Navigate。

weixin_34640289的博客 1405

C# Winform与WebBrowser控件:HTML交互技术详解

WebBrowser控件是.NET框架中用于在Windows Forms应用程序中嵌入Web浏览器体验的一种控件。它允许开发者创建一个能够加载和显示网页的环境,使得用户无需离开应用程序界面就可以浏览网页内容。WebBrowser控件基于Internet Explorer浏览器技术,因此它支持大多数IE所支持的HTML和脚本功能。这种控件特别适合于需要显示网页内容或进行简单Web交互的桌面应用程序。利用WebBrowser控件,开发者可以控制网页的导航、内容的加载以及与网页内元素的交互。

weixin_36282234的博客 1957

C# WebBrowser的8个方法、13个属性和事件

1、方法 说明 GoBack 相当于IE的“后退”按钮,使你在当前历史列表中后退一项 GoForward 相当于IE的“前进”按钮,使你在当前历史列表中前进一项  GoHome 相当于IE的“主页”按钮,连接用户默认的主页  GoSearch 相当于IE的“搜索”按钮,连接用户默认的搜索页面  Navigate 连接到指定的URL Refresh 刷新当前页面  Refresh2 同上,只是可以指...

weixin_33714884的博客 941

突发环境事件怎么模拟?用Python+GIS实现高斯烟团模型(附完整代码)

本文详细介绍了如何利用Python与GIS技术实现高斯烟团模型,用于模拟化工泄漏等突发环境事件的动态扩散过程。通过核心原理讲解、参数快速获取方案、Python代码实现及GIS可视化集成,为环境应急人员提供了一套完整的解决方案。特别适合危险品运输事故等瞬态污染场景的应急决策支持。

weixin_33692284的博客 486

C# 关于浏览器——WebBrowser篇

最近要写一个浏览器包裹一个网站,试了各种浏览器插件,记录一下。 第一个就是微软的WebBrowser,这个很容易,直接拖过来,然后写一下注册表调用IE11的内核显示,这个代码是抄的: /// <summary> /// 修改注册表信息来兼容当前程序 /// /// </summary> static void SetWebBrowserFeatures(int ieVersion) {

仅次于狼的博客 7578

映泰TB250-BTC主板魔改BIOS支持8/9代CPU实战与开机故障排查

BIOS(基本输入输出系统)是计算机硬件与操作系统之间的桥梁,负责初始化硬件和提供运行时服务。其工作原理是通过存储在主板芯片中的固件程序,在上电自检(POST)阶段完成对CPU、内存等关键组件的检测与配置。魔改BIOS的技术价值在于突破硬件限制,通过修改微码和电源管理模块,让旧平台支持新处理器,从而以极低成本实现性能跃升,在预算有限或追求极致性价比的DIY、办公和软路由等应用场景中极具吸引力。本文以映泰TB250-BTC矿板为例,详细解析了通过软刷方式刷入魔改BIOS,并重点解决了刷写后常见的“开机风扇转一

weixin_29164185的博客 406

《工程测量学》笔记/期末复习资料

《工程测量学》笔记/期末复习资料。

@HNUSTer的博客 5565

C#中WebBrowser控件的使用

今天在YouTube上看了一个关于WebBrowser控件用法的小视频,做一下总结。 首先创建一个WinForm程序,拖入一个textbox控件和一个button按钮,然后拖入一个panel控件,如图所示: 拖入panel控件后,找到WebBrowser控件并双击,WebBrowser控件就会自动填充到panel控件上,像下面这样: 之后给button改个名,双击butto...

aab438346的博客 306

Microduck机器鸭开源AI项目:本地部署与模型微调实战指南

开源AI模型的本地化部署与定制化训练正成为开发者关注的技术趋势。与依赖云端API的在线服务不同,本地部署允许用户将模型权重下载至自有GPU环境,通过命令行或WebUI完成推理、批量任务处理及API集成,在数据隐私、离线使用和接口稳定性方面具备天然优势。模型微调则基于预训练权重,利用领域数据训练特定任务,从而提升生成质量与业务适配度。这一技术路径广泛应用于内容生成、智能对话、自动标注等场景,尤其适合消费级显卡开发者、数据敏感型团队及二次开发研究者。Microduck(机器鸭)作为近期预售火爆的开源项目,围绕“

weixin_29082143的博客 414

C# webBrowser控件使用心得

最近用到WebBrowser控件,遇到很多问题,也学习了不少新的东西。下面是我在C#下写的关于WebBrowser控件使用的代码。 1、WebBrowser常用属性 .Refresh();//刷新 .GoBack();//后退 .GoForward();//前进 .Navigate(new Uri(address)); //打开链接 .Dock = DockSt

htsnoopy的专栏 2653

CloudCompare

分割点云:选中要分割的点云文件–>Segment–>左键框出要分割的点或者区域–>Segment Out–>Comfirm Segmentation,原点云文件被分割成两个结构,选中分割出来的remaining,右键delete即可。qSRA (Surface of Revolution Analysis):计算一个点云和一个假定旋转平面之间的距离(旋转平面用2D轮廓定义),距离计算好后,用户可以创建一个偏差的2D图或者圆柱或圆锥的投影。②表现为同样的对象或者至少有同样的形状。

xiaoyaolangwj的博客 4709

2021-8-14 EDK II编译

2021-8-14 EDK II 编译为什么要写这篇文章新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 为什么要写这篇文章 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdo

qq_45775660的博客 2946

C#通过webbrowser控件与javascript交互

C#通过webbrowser控件与javascript交互 1.C#里调用控件里面网页的js函数 // 调用JavaScript的messageBox方法,并传入参数 object[] objects = new object[1]; objects[0] = “C#访问JavaScript脚本”; this.webBrowser1.Document.InvokeScript(“mess

luxiaoyu_sdc的专栏 2万+

GEE APP:基于GEE的红树林监测平台

本文将介绍如何利用Google Earth Engine平台,结合Landsat系列卫星影像和SRTM高程数据,实现红树林分布的动态监测与变化分析。

此星光明博客 160

C# Winform WebBrowser控件

C#WinFormWebBrowser 1、主要用途:使用户可以在窗体中导航网页。 2、注意:WebBrowser控件会占用大量资源。使用完该控件后一定要调用Dispose方法,以便确保及时释放所有资源。必须在附加事件的同一线程上调用Dispose方法,该线程应始终是消息或用户界面(UI)线程。 3、WebBrowser使用下面的成员可以将控件导航到特定URL、在导航...

weixin_30322405的博客 858

【原创教程】汇川H5U入门教案第二课

定时器指令IN输入能流从OFF变为ON时,定时器启动计时,输出Q为ON,IN输入能流从ON变为OFF时,在IN保持为OFF期间,定时器的运行时间是PT参数指定的时间,定时器定时时间达到PT参数指定的时间后,Q变为OFF。IN输入能流为ON时,ET输出值为0,IN从ON变为OFF时,在定时器计时运行期间,ET输出当前的计时时间,定时器计时时间到达PT参数指定的时间后,ET值保持。IN输入能流为ON时,在定时器计时运行期间,ET输出当前的计时时间,定时器计时时间到达PT参数指定的时间后,ET值保持;

Qinmingyue13的博客 2478

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

C#中使用Webbrowser控件如何传值

在使用Winform开发时,需要用到Webbrowser控件用来展示页面,如何将控件的值传给页面呢?一. 对于少量参数值,可以在url地址中加入需要传输的值。前台页面js解析url地址参数即可//C#代码,传输用户ID为80的值给testPage.aspx页面 string url = "localhost:8080//testPage.aspx?userID="+80; webBrowser1.N

遨游奋飞 4890

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

上一篇: 清除webbrowser cookie/session的6种方法
下一篇: 常用的js函数
cctcc
博客等级 码龄23年 104粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值