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

LSTM预测股票数据---数据预处理

# 导入相应的模块 import pandas as pd import numpy as np import matplotlib.pyplot as plt import tensorflow as tf # 获取训练集 def get_train_data(data,batch_size = 60 ,time_step = 20,train_begin = 0,train_end = 58...

qq_35358021的博客 3360

C# 关于浏览器——WebBrowser篇

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

仅次于狼的博客 7578

从零到一:基于Blazor和Elsa Workflows的工作流系统开发实战

本文详细介绍了如何利用Blazor和Elsa Workflows构建高效的工作流系统,从技术选型到生产环境部署,涵盖动态工作流建模、Blazor前端集成及性能优化等核心内容。通过实战案例,展示如何实现订单处理系统的自动化与灵活性,提升企业流程效率。

weixin_26875109的博客 428

Unity序列帧动画输出全攻略:Recorder+Timeline实战与透明通道处理

序列帧动画是游戏开发、影视动画和UI动效中的基础技术,指将连续动作分解为一系列静态图像并按序播放,形成动态视觉效果。其原理是通过时间轴精确控制每一帧的内容与时机,实现动画的逐帧呈现。在实时渲染领域,序列帧输出技术价值显著,它能够将动态内容高质量地转换为静态图像序列,便于跨平台复用、后期合成与资源分发。应用场景广泛,包括角色动画导出、技能特效制作、宣传片素材生成等。本文聚焦Unity引擎,深入解析如何利用Recorder与Timeline工具链,高效输出带Alpha透明通道的PNG序列帧,并重点攻克透明通道处

weixin_31556767的博客 327

C#中WebBrowser控件的使用

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

aab438346的博客 306

海思Hi3519AV100 sensor移植实战:IMX586驱动调试与硬件验证全流程

本文详细解析了在海思Hi3519AV100平台上移植索尼IMX586传感器的全流程实战。内容涵盖从硬件I2C通信验证、驱动代码移植与修改,到内核配置、时钟设定,以及使用示波器进行硬件信号深度验证和ISP图像调优等关键步骤,为开发者提供了一套清晰、可复现的sensor移植与调试方法。

weixin_29168393的博客 395

C# webBrowser控件使用心得

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

htsnoopy的专栏 2653

二极管钳位电路、限幅电路和检波电路Multisim电路仿真

本文系统介绍了二极管钳位、限幅和检波三种基础电路的工作原理及Multisim仿真验证。钳位电路通过电容-二极管配合实现波形整体平移,将波峰或波谷固定在指定电压;限幅电路利用二极管导通特性削除信号超出设定阈值的部分;检波电路则通过半波整流和电容滤波从调幅波中提取音频信号。三种电路均通过Multisim仿真验证了理论分析结果,展示了二极管在信号处理中的关键作用。这些基础电路广泛应用于信号调理、电平保护和通信解调等领域。

XU157303764的博客 1123

【OpenClaw企业级智能体实战】第13篇:1+N架构实战!OpenClaw多Agent数字员工军团搭建指南(含完整配置+路由策略+代码落地)

单Agent因“记忆负担重、Token消耗高、响应不精准”已难以满足复杂场景需求,而多Agent团队通过“1个编排者+N个执行者”的分工协作模式,能让效率提升300%以上。本文基于OpenClaw 2026稳定版,结合阿里云开发者社区实战案例,从核心认知、准备工作、实操流程、协作机制、安全配置五大维度,完整拆解多Agent团队搭建全流程。文中包含可直接复制执行的代码、详细配置模板、路由策略设置及常见问题排查,新手可在1-2小时内落地属于自己的“数字员工”军团,覆盖内容创作、技术支持、多平台运营等多场景。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 745

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万+

VHDL六层电梯控制器及仿真

六层电梯电梯 设计要求:设计一个六层电梯控制系统要求有超载、关门中断、提前关门清除报警信电梯外人的上升请求信号,电梯外人的下降请求信号, 电梯外人上升请求信号显示电梯外人下降请求信号显示到达楼层信号 设计思路:输入有clk时钟信号(频率为2Hz) full,deng,quick,clr超载、关门中断、提前关门清除报警c_u1,c_u2,c_u3,c_u4,c_u5电梯外人的上升请求c_d2,c_d3,c_d4,c_d5,c_d6 电梯外人的下降请求 d1,d2,d3,d4,d5,d6电梯内人的...

QQ_778132974的博客 1709

C# Winform WebBrowser控件

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

weixin_30322405的博客 858

Autosar NvM配置-手动配置Nvblock及使用-基于ETAS软件

NVM作为存储协议栈中最顶层的模块,是必须要掌握的。目前项目基本使用MCU带的Dflash模块,使用Fee模拟eeprom。在项目前期阶段,应该充分讨论需要存储的内容,包括应用数据,诊断数据等,用以评估Dflash空间是否够用。本文基于ETAS软件介绍NVBlock配置生成NVM参数及使用。使用NVBlock配置生成,基本不用手写代码,还是比较方便的。对于Nv block的划分,建议将同时写的一类数据放到一个block中,因为block除了data以外,Fee还会增加一些header数据,占用不少内存。

赞的博客 1884

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

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

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

遨游奋飞 4890

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

上一篇: 清除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、付费专栏及课程。

余额充值