关于WebBrower控件的问题.

qfknet 2009-12-08 12:35:34
我需要用webBrower控件在winform程序里读取一连串的页面.

使用webBrower.Navigate("URL")可以让webBrower读取页面,并在DocumentCompleted事件中处理读完的页面中的数据.

我需要连续读取一连串的URL,请问如何做能更好一点?

有一个List<string> lURL,里面保存了几十个地址,都要读取并且在DoucmentCompleted中处理.

用循环webBrower.Navigate不行啊,读取需要时间,事件来不及响应

谢谢了先
...全文
224 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
朝三慕四 2010-12-10
  • 打赏
  • 举报
回复
21211121
sharp_future 2009-12-08
  • 打赏
  • 举报
回复
楼主在加载完一个页面 需要处理数据的话 让线程sleep()一下
wartim 2009-12-08
  • 打赏
  • 举报
回复
是连续导航吗?
在DocumentCompleted里继续Navigate

参考,回复csdn

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication181
{
public partial class Form1 : Form
{
TextBox TB = new TextBox();
Button B = new Button();
WebBrowser WB = new WebBrowser();

bool IsReplyFrame = false;

public Form1()
{
InitializeComponent();

this.Size = new Size(800, 800);
this.StartPosition = FormStartPosition.CenterScreen;

TB.Parent = this;
TB.Dock = DockStyle.Top;
TB.KeyDown += new KeyEventHandler(TB_KeyDown);

B.Parent = this;
B.Dock = DockStyle.Bottom;
B.Click += new EventHandler(B_Click);
B.Text = "写回复";

WB.Parent = this;
WB.Dock = DockStyle.Fill;
WB.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(WB_DocumentCompleted);
}

void TB_KeyDown(object sender, KeyEventArgs e)
{
IsReplyFrame = false;

if (e.KeyCode == Keys.Enter)
WB.Navigate(TB.Text);
}

void WB_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (!IsReplyFrame)
{
String RelayUrl = WB.Document.GetElementById("replyframe").GetAttribute("src");

WB.Navigate(RelayUrl);
IsReplyFrame = true;
}
}

void B_Click(object sender, EventArgs e)
{
WB.Document.GetElementById("tb_ReplyBody$_$Editor").InnerText = "回复!!!!!!";
}
}
}
my51f12w 2009-12-08
  • 打赏
  • 举报
回复
可以用配制文件
swq1982 2009-12-08
  • 打赏
  • 举报
回复
因为循环语句和WebBrowser的加载网页不是不同步的,导致前一个前一个网页还没加载完,下一次循环又开始了,最终的结果是WebBrowser只获取到了最后一个页面的html.
你的解决办法就是可以引入事件或者其他机制保证WebBrowser下载完第一个网页后,再去下载第二个网页。

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧