c#中如何做到等待webbrowser加载完成并且获取了网页代码之后后再运行下面的代码

2025-01-04 03:24:10
推荐回答(4个)
回答1:

你好!
webbrowser控件有DocumentCompleted加载事件的。这个事件微软给出的解释也是当文档加载完毕时触发。
假设你的webbrowser控件name是wb
那么在这个事件写就行了。
private void wb_DocumentCompleted(object sender, WebBrowserNavigatedEventArgs e)
{
if (e.Url.ToString() != extendedWebBrowser1.Url.ToString())
return;
if (extendedWebBrowser1.ReadyState != WebBrowserReadyState.Complete)
return;
string html_code=wb.Document.Body.OuterHtml;//获取当前网页源码
// Do Something
}

回答2:

  //可以用webbrowser的DocumentCompleted事件啊  如下
  public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private AutoResetEvent _event = new AutoResetEvent(false);
        private void Form1_Load(object sender, EventArgs e)
        {
            webBrowser1.DocumentCompleted += WebBrowser1_DocumentCompleted;
        }

        private void WebBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            MessageBox.Show("加载完了");
        }

        private void button1_Click(object sender, EventArgs e)
        {
            webBrowser1.Navigate("http://www.baidu.com/");
        }
    }

回答3:

webbrowser拥有COMPLETE事件. 触发事件的事件就是成功加载并获取网页的时间

回答4:

用ajax的控件。。。
VS自带的或者是第三方的,基本都可以实现的