c# - for循环无法正常工作

时间:2011-10-12 20:51:13

标签: c# browser

我正在做一个程序,它转到一个链接+参数(字符串),编辑一些值并点击保存按钮。

这是我的代码中出现问题的部分:

for (int i = 0; i <= s; i++)
{
  webBrowser1.Navigate("someUrl" + parameter[i]);
  timer1.Enabled = true;
}

private void timer1_Tick(object sender, EventArgs e)
{
  //some code to change some values and click on a save button...
  timer1.Enabled = false;
}

问题是,它只循环一次,而不是循环一次。我正在使用计时器等待几秒钟来加载页面...

3 个答案:

答案 0 :(得分:1)

您可以尝试使用WebBrowserDocumentCompletedEvenHandler

public void Init()
{
    myWebBrowser.DocumentCompleted +=  new WebBrowserDocumentCompletedEventHandler(NavigationCompleted);
}

public void Navigate()
{
    myWebBrowser.Navigate(parameter[index++]);
}

private void NavigationCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
     //Do what you have to do with the document loaded in the browser
     //...
     //Submit your edit form (click save button)
     //...
     Navigate(); //Next!
}

答案 1 :(得分:1)

您的循环当然正在执行s次,但timer1_Tick肯定只执行一次。这是因为您在快速启动模式下反复启用timer1,但只有在timer1_Tick几秒钟后才会触发时,计时器才会被禁用一次。

答案 2 :(得分:0)

查看System.ComponentModel.BackgroundWorker。它允许您非常轻松地在后台运行事物,并在工作完成时获得通知。可能是你所期待的。