2 laura2333 Laura2333 于 2016.09.15 10:09 提问

documentcompleted事件没有被执行?

c# 写一个简单的爬虫,使用webbrowser爬网页的时候,发现wb_DocumentComplete没有被执行,程序就结束了。。。。怎么破啊,大神们

void wb_DocumentCompleted(object sender ,WebBrowserDocumentCompletedEventArgs e) 
{
     WebBrowser wb = (WebBrowser)sender;
     if ( wb.ReadyState == WebBrowserReadyState.Complete)
     {
            dosomething();
      }
}

private void GetHtmlWithBrowser(object url)
{
     WebBrowser wb = new WebBrowser();
     wb.Navigate(new Uri("https://www.baidu.com"));
     wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wb_DocumentCompleted);

        }


3个回答

guwei4037
guwei4037   Ds   Rxr 2016.09.15 10:18

我试了一下,执行了。

Laura2333
Laura2333 能把结果贴出来么
接近 2 年之前 回复
Laura2333
Laura2333   2016.09.15 10:31

我试了一下,执行了。
能把运行的结果贴出来么

guwei4037
guwei4037   Ds   Rxr 2016.09.15 10:53

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

    private void Form1_Load(object sender, EventArgs e)
    {
    }

    private void GetHtmlWithBrowser(Uri uri)
    {
        WebBrowser wb = new WebBrowser() { Dock = DockStyle.Fill };
        wb.Navigate(uri);
        wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wb_DocumentCompleted);
        this.Controls.Add(wb);
    }

    void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        WebBrowser wb = (WebBrowser)sender;
        if (wb.ReadyState == WebBrowserReadyState.Complete)
        {
            MessageBox.Show("finish.");
        }
    }

    private void button1_Click(object sender, EventArgs e)
    {
        GetHtmlWithBrowser(new Uri("https://www.baidu.com"));
    }
}
Laura2333
Laura2333 我创建的只是个控制台程序,会不会是这个的问题呢
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
谨慎注意WebBrowser控件的DocumentCompleted事件
来自:斯克迪亚个人博客 http://skyd.cnblogs.com/ http://www.csharpwin.com/dotnetspace/1185.shtml 摘要:WebBrowser控件的DocumentCompleted事件一般就被认定为是在页面完全加载完毕后产生,但事实却并非如此。首先它不一定会在完全加载完毕时才触发,有时就会在加载过程中就会触发。
WebBrowser让DocumentCompleted事件执行完毕后再往下执行
 Q:WebBrowser如何让DocumentCompleted事件执行完毕后再往下执行?A:使用信号量,等待一下System.Threading.AutoResetEvent obj = new System.Threading.AutoResetEvent(false);        void webBrowser1_Do
一个Navi过程下多个DocumentCompleted事件问题的解决办法
一个Navi过程下多个DocumentCompleted事件问题的解决办法 通过事件传过来的URL判断!
webkit.net手动添加事件代码
//加载全局初始化变量 WebKit.WebKitBrowser browser = new WebKitBrowser(); browser.DocumentCompleted += new System.Windows.Forms.WebBrowserDocumentCompletedEventHandler(this.browser_Docum
为什么OnDraw()方法没有被执行!郁闷
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } priv
防止Click事件短时间内多次被执行
如果UI上有可点击的控件,且此控件的点击执行逻辑开销较大的话,则一定有防止控件被用户在短时间内多次click的需求.现在常见解决方案整理如下 1. windows 由于winodws的点击消息由mouse消息转化而来,只要在onclick的处理的最后把线程中的所有鼠标消息peek掉即可. 2.android 如下,通常是手动设置时间标志来完成,如链接所示 http://s
和第一行被执行
一个函数是一个序列的设计做一个特定工作表。你已经知道,每个程序都必须有一个功能叫做main()。然而,大多数程序有许多功能,和他们所有的工作类似于主。通常,你的程序需要打断它是什么做的临时做其他的事情。你在现实生活中所有的时间。例如,你可能读一本书时,你记得你需要打一个电话。你把一个书签在你的书中,打电话,当你完成的电话,你回到你的书你离开的地方了。C++程序的工作方式相同。一个程序将执行语句顺序
如何解决WebBrowser.DocumentCompleted事件的多次调用
关于DocumentCompleted事件,MSDN给出的解释是在文档加载完毕后执行,但是在我的程序中DocumentCompleted却被多次调用,查了一下资料,大概出现了以下几种情况。 1、WebBrowser载入一个页面后DocumentCompleted事件会执行两次,但这两次的ReadyState状态不一样,分别是Intercative和Complete。而MSDN对这两种状态
try后的finally {}里的代码会不会被执行,什么时候被执行?
先看下面一段代码 static void Main(string[] args) { Console.WriteLine(GetIt()); Console.ReadKey(); } static int GetIt() { int i = 8
60. Event onfocus 事件
定义和用法 onfocus 事件在对象获得焦点时发生。 语法onfocus="SomeJavaScriptCode"实例 在本例中,当输入框获得焦点时,其背景颜色将改变: <html> <head> <script type="text/javascript"> function setStyle(x) { document.getElementById(x).style.background=