我重新规整了一下! 两个窗体Form1.cs 主窗体。 LoadingFrom.cs 检测窗体。Form1.cs 代码如下:using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;namespace WebBrowser_Test { public partial class Form1 : Form { LoadingFrom loadfrom; public Form1() { loadfrom = new LoadingFrom(); InitializeComponent(); } System.Threading.AutoResetEvent obj = new System.Threading.AutoResetEvent(false); private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { obj.Set();
你应该是拖个控件到窗体的吧,那就在属性中的事件里找到这个事件,然后双击写代码
两个窗体Form1.cs 主窗体。
LoadingFrom.cs 检测窗体。Form1.cs 代码如下:using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;namespace WebBrowser_Test
{
public partial class Form1 : Form
{
LoadingFrom loadfrom;
public Form1()
{
loadfrom = new LoadingFrom();
InitializeComponent();
}
System.Threading.AutoResetEvent obj = new System.Threading.AutoResetEvent(false);
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
obj.Set();
}
private void btSohu_Click(object sender, EventArgs e)
{
loadfrom.Show();
this.webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted); webBrowser1.Navigate("http://www.sohu.com");
obj.Reset();
while (obj.WaitOne(10, false) == false)
{
Application.DoEvents();
}
MessageBox.Show("加载完毕!");
loadfrom.Close();
this.webBrowser1.DocumentCompleted -= new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
}
}
}
LoadingFrom.cs 页面无任何代码就是一个Loading页,其实我想做的是,在Loading窗体里检测WebBrowser加载完页面没有,如果加载完了就关闭。
http://topic.csdn.net/u/20111129/10/9035a778-c51c-4a6f-a704-0ce141f900b1.htmlpublic Form1()
{
InitializeComponent();
this.webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
}
_loginLoading = true;
while (_loginLoading == true)
{
Application.DoEvents();
}
注意看这里
{
...
while (webBrowser1.IsBusy)
{
System.Threading.Thread.Sleep(1000);
}
...
}或者private void btSohu_Click(object sender, EventArgs e)
{
...
while (webBrowser1.ReadyState!= WebBrowserReadyState.Complete)
{
System.Threading.Thread.Sleep(1000);
}
...
}就是使用ReadyState或者IsBusy属性