C#怎么知道动态页面加载完成
1、打开visual studio 2010
2、建立Winform项目,界面如图。
3、添加一个Textbox控件,一个Button控件,一个WebBrowser控件。
Button控件的Text属性改为 加载网页。
4、双击 加载网页 按钮,进入代码界面。
5、给Form1的Load时间增加代码。
private void Form1_Load(object sender, EventArgs e)
{
this.webBrowser1.Navigated += new System.Windows.Forms.WebBrowserNavigatedEventHandler(AddCount);
this.webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(CheckState);
}
增加两个函数 AddCount——增加计数计数,CheckState——检查状态
代码如下。
/// <summary>
/// 计数变量
/// </summary>
private int loadcount = 0;
/// <summary>
/// 计数器递增函数
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void AddCount(object sender, EventArgs e)
{
loadcount++;//navigated一次,计数加一
}
/// <summary>
/// 页面加载完要执行的函数
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void CheckState(object sender, EventArgs e)
{
loadcount--;//completed一次,计数减一
if (0 == loadcount)//计数等于0,页面加载完成
{
button1.Enabled = true;//恢复按钮可用
MessageBox.Show("加载完成");
}
}
6、button1的点击事件增加代码。
private void button1_Click(object sender, EventArgs e)
{
button1.Enabled = false;//按钮不可用
this.webBrowser1.Navigate(this.textBox1.Text);
}
7、为了方便测试,textBox1控件的Text属性设置为https://www.baidu.com/
8、点击运行。点加载网页,就开始加载baidu.com,同时 加载网页 按钮变灰,稍等一会,网页加载完成, 加载网页 恢复正常,同时弹出对话框
9、点击确定,就可以浏览百度的网页了。
这里为了偷懒,没有设置webBrowser1的大小(也可以利用Dock属性Fill,填满窗口),所以看着很小,实际开发中还是要根据需要设置一下。