首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用多个WebBrowser DocumentCompleted

多个WebBrowser DocumentCompleted事件的使用方法如下:

  1. 首先,确保你已经在项目中引用了System.Windows.Forms命名空间。
  2. 创建多个WebBrowser控件对象,可以通过代码或者在窗体设计器中拖拽方式添加。
  3. 为每个WebBrowser控件对象注册DocumentCompleted事件的处理程序。可以在窗体的构造函数或者Load事件中添加以下代码:
代码语言:csharp
复制
webBrowser1.DocumentCompleted += WebBrowser1_DocumentCompleted;
webBrowser2.DocumentCompleted += WebBrowser2_DocumentCompleted;
// 添加更多的WebBrowser控件对象和对应的事件处理程序
  1. 在事件处理程序中编写逻辑代码。DocumentCompleted事件在每次WebBrowser控件加载完页面后触发,可以在事件处理程序中执行需要的操作。例如,可以获取页面内容、修改页面元素、执行JavaScript脚本等。
代码语言:csharp
复制
private void WebBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    // 处理webBrowser1加载完页面后的逻辑
    // 可以通过sender参数获取当前触发事件的WebBrowser控件对象
    // 可以通过e参数获取页面的URL等信息
}

private void WebBrowser2_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    // 处理webBrowser2加载完页面后的逻辑
    // 可以通过sender参数获取当前触发事件的WebBrowser控件对象
    // 可以通过e参数获取页面的URL等信息
}
  1. 在适当的时机,通过调用WebBrowser控件对象的Navigate方法加载指定的URL。例如:
代码语言:csharp
复制
webBrowser1.Navigate("https://www.example.com");
webBrowser2.Navigate("https://www.example2.com");

这样,当每个WebBrowser控件加载完页面后,对应的DocumentCompleted事件处理程序就会被触发,你可以在事件处理程序中执行相应的操作。

注意:在使用多个WebBrowser控件时,要注意控制资源的使用,避免过多的WebBrowser控件导致系统负担过重。另外,还要注意处理可能出现的异常情况,例如页面加载超时、网络连接失败等。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

用webBrowser打开网页出现脚本错误怎么办

那么,在使用webBrowser打开网页遇到脚本错误时如何处理才能让程序无干扰的自动运行呢? webBrowser给我们提供了一个属性:ScriptErrorsSuppressed 。...如果要使用该控件向应用程序添加基于 Web 的控件和脚本代码,则此属性十分有用。如果将该控件用作泛型浏览器,则此属性用处不大。完成应用程序的调试后,将此属性设置为 true 以取消显示脚本错误。...这种做法的负作用如上面红字描述的,如果只想屏蔽脚本错误,可以用以下方法: 下面的代码演示如何在不取消显示其他对话框的情况下取消显示脚本错误。...只有在文档已完成加载时才能访问此事件,因此该处理程序被附加到 DocumentCompleted 事件处理程序中。...browser_DocumentCompleted); } private void browser_DocumentCompleted(object sender,

2.3K20
  • 在WPF桌面程序中使用ECharts展示图表

    问题来了,ECharts是个前端JS库,只支持在页面上使用,要使用ECharts组件,可以在WPF窗体中Host一个WebBrowser控件,然后挂接本地运行目录的页面来实现。...x:Name="webBrowser" Url="" DocumentCompleted="webBrowser_DocumentCompleted" SizeChanged="webBrowser_SizeChanged...">WebBrowser> 然后定义事件,在页面装载完成后执行JS脚本,展示图表: private void webBrowser_DocumentCompleted...} } private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs...3、使用ECharts包装的控件在WPF窗体中展示图表,使用起来非常简单,把控件放到需要展示图表的窗体中,在EyChartView_Initialized方法中并把参数传递给图表控件来控制图表的样式、大小及数据内容等

    3.1K30

    .NET实现之(WebBrowser数据采集—终结篇)

    ,就将用WebBrowser进行与HTML网页进行混合使用,在HTML的对象中我要在我的WebBrowser控件中通过读取数据库,将Winform的控件在HTML中进行呈现,然后将我们的Winform中的数据动态的填入...HTML网页中;这样的人性化、方便性、模拟性我想是WebRequest所不能取代的,我们大部分的软件是要提供给用户使用的,有一个友好的用户界面是必须的;[王清培版权所有,转载请给出署名] 今天我要讲的主要内容是通过...,在WebBrowser控件中有一个事件是我们必须要用到的DocumentCompleted事件,在网页加载完毕过后我们要进行相应的判断,比如当前页面是否是登录页面,我们做的网页抓取工具不可能是傻瓜式的手动抓取点一下抓一下...就是在里面加上了一些事件参数,这个文件下面有一个GatherWebBrowserArgs.cs文件,这个是WebBrowserDocumentCompletedEventArgs对象的配送对象; 3: 这个对象的目的就是将DocumentCompleted...大家请注意,在我们层层跳转到最后的采集页面时,我们要将事件链中的第一个事件断开,为什么要断开,是因为我们的WebBrowser控件的DocumentCompleted事件总是会在网页加载完毕后触发,一旦当我们进入到采集生命周期中的时候

    64120

    原来webBrowser还可以这样用

    就这样搞了一半,突然想到一个webBrowser控件,这个控件先模拟登陆然后再在webBrowser中读取相关的html,而本来计划是监控webBrowser获取其连接,但看了一下这样也比较复杂,主要是要读...先说读取吧,读取比较简单“this.webBrowser1.DocumentStream”就能读HTML的代码但不足的就是编码会乱因为网页是GBK的。。好吧还是上代码。...那怎么激活这个呢,一开始想打开页面后再执行,但因为有时候webBrowser1还没完成加载完成,所以无内容。因此突然想到一个webBrowser1_DocumentCompleted。。...这个DocumentCompleted就是监听加载完毕就执行这个,预是在这里加入就可以了。。完美。。...最后,怎么激活webBrowser1的地址,其实就是webBrowser1.Navigate("网站")就可以了。。又多了一个简单的功能。。

    68130

    Arduino如何同时使用多个串口

    问题 如果想要给Arduino UNO R3同时接上WiFi模块和蓝牙模块时,但是Arduino的串口只有一个,怎样才能让Arduino同时使用多个串口呢? ?...解决方案 其实Arduino官方提供了一个软串口的库SoftwareSerial,不需要额外的去库管理面板中导入,只需一句include语句就可以使用它 #include 这个库可以将Arduino的引脚,通过程序模拟成串口来使用;在声明语句中使用 SoftwareSerial mySerial(2,3); 便创建了一个自定义的软串口mySerial,并把数字引脚2定义成...手机蓝牙连接上HC-05模块后,发送字符串,成功控制舵机 最后 使用软串口,有两点好处; 好处一:arduino就可以同时使用蓝牙模块和WiFi模块,再也不用为串口不够用而发愁了!...好处二:使用软串口连接,就不用担心烧录程序时的串口干扰问题了,如果经常使用串口连接蓝牙或者WiFi模块的人绝对深有体会,再也不用烧录一次程序就要拔一次杜邦线了。

    4.7K00

    如何使用函数 SetTagMultiWait() 来写多个 WinCC 变量?

    说明: 在 WinCC 全局 C 脚本中有几个默认的 "SetTagMulti()" 函数用来写多个 WinCC 变量值: BOOL SetTagMultiWait(const char* pszFormat...因此您不能使用该返回值检查 WinCC 变量的写入是否成功。因此您应该使用 “SetTagMultiStateWait()“函数及关联的变量状态来评估错误。...WinCC 变量的质量信息(变量状态)可在 WinCC 信息系统中的以下位置找到: “通讯 > 通讯 - 诊断> 变量质量> 变量状态“ 关于“SetTag()“函数如何运行的常规信息可在 WinCC...信息系统中的以下位置找到: “使用 WinCC > 使用 ANSI-C 创建函数和动作 > ANSI-C 函数描述 > 内部函数 > 变量 > 写 > SetTag 函数的功能“ 下表描述了格式字符串中可能的格式并说明了何种格式可以同何种...WinCC 和 C 数据类型一起使用:

    2.8K11

    并发编程如何使用锁保护多个资源

    上一篇我们知道受保护资源和锁之间合理的关联关系应该是N:1的关系,也就是说一个锁可以保护多个资源,并不能多把锁来保护一个资源,今天我们就说说如何实现一把锁保护多个资源....保护没有关联关系的多个资源 在现实生活中,球场的座位和电影院的座位是没有关联的,这种场景非常容易解决,那就是球场有球场的门票,电影院有电影的门票 同样,在编程的世界里,也是同样的原理,比如,银行业务的针对账户余额的取款操作...,如何保证转账transfer没有并发问题 class Account { private int balance; // 转账 void transfer( Account target...使用锁的正确姿势 如果解决上面的问题呢,我们就可以使用同一把锁保护多个资源,也就是现实世界的包场,那么上面的例子中,this是对象级别的锁,但是账户A和账户B是不同的对象,如何可以共享一把锁呢 我们其实可以让所有对象都持有一个唯一性的对象...this.balance > amt) { this.balance -= amt; target.balance += amt; } } } } 下图很直观的展示了我们是如何使用

    98730

    WebBrowser引用IE版本问题,更改使用高版本IE

    项目里使用了WebBrowser控件。以前一直都以为WebBrowser是直接调用的系统自带的IE,IE是呈现出什么样的页面WebBrowser就呈现出什么样的页面。其实并非如此。...本机使用的是IE8,项目是.net4.0。用本机浏览器查看Web项目没有任何问题。可是调用Winform里的WebBrowser浏览Web项目页面却出现了布局问题。...所以我就开始质疑到底WebBrowser是不是IE8的模式啊。于是打开IETester,从IE9一直到IE5都查看了一遍,发现最像WebBrowser布局呈现的是IE7模式下。...在搜了一些相关资料原来WebBrowser使用的是IE的兼容模式进行浏览(IE7模式)。   如何让WebBrowser引用IE 8 呢。...到程序目录下打开就可以看到WebBrowser已经引用IE8模式了,这里要主意的是不要在VS打开。

    2.5K40

    Gateway如何使用多个源来达成动态路由

    Gateway如何使用多个源来达成动态路由一、介绍在前面的文章,我介绍了如何从Nacos读取json文件来动态生成路由随着文件的变更,同时刷新路由但在文章的结尾,我并不满足于仅仅只在Nacos配置动态路由...,我想要在多个源上配置信息,任何一处地方修改了配置,Gateway照样能够刷新路由。...那么如何使用多个源来达成动态路由?...本篇文章使用了Nacos的json文件,和MySQL数据表,两个配置源来达成动态路由二、代码首先,分析了上篇文章的RouteDefinitionRepository.java接口,之前的Nacos配置源也是实现了这个接口主要是里面的这个方法...:{}", id); routes.remove(id); return Mono.empty(); }); } }这样就能实现多个源来配置

    20820
    领券