2012-07-03 50 views
0

我在C#Windows窗體上有一個WebBrowser控件,該控件獲取一些參數。由於某些Ajax內容,webbrowser會多次提交DocumentCompleted。除此之外,我填寫表單字段中的一些值的網頁(這是什麼意思,通過傳遞參數來控制)加載速度不是很快,我有一個計時器,每2秒運行一次以嘗試填充值。到目前爲止這麼好,但現在我有不同的價值觀,我需要傳遞給表單和網站需要再次加載。 我在列表中使用foreach循環的那些值。問題在於foreachloop太快,所以webbrowser控件只能獲取該列表的最後一個值。在foreach循環期間將參數傳遞給webbrowser控件不起作用

我希望你們明白我的意思。你有什麼建議/提示/技巧我應該怎麼做才能解決這個問題?

謝謝!

編輯:下面是一個觸發器在其結束再通過加載頁面,傳遞參數等的過程進行定時器在foreach的代碼...根據您的問題

foreach (string routeFrom in lstRoutesFrom) 
    { 
     string routeTo = lstRoutesTo[lstRoutesFrom.IndexOf(routeFrom)].ToString(); 

     //Prepare Data... 
     this.requestAirportFrom = routeFrom; 
     this.requestAirportTo = routeTo; 

     string dd = "13"; 
     string mm = "07"; 
     string yyyy = "2012"; 
     string date = dd + "/" + mm + "/" + yyyy; 
     this.requestDate = date; 

     this.globalStep = 0; 
     listAirline.Clear(); 
     listArrAirports.Clear(); 
     listArrTime.Clear(); 
     listDepAirports.Clear(); 
     listDepTime.Clear(); 
     listFlightNumbers.Clear(); 
     listFlightPrices.Clear(); 
     btnTimer.Enabled = true; 
    } 
+4

沒有代碼,沒有cookie。請提供您的循環代碼。 – leppie

+0

謝謝!添加了上面的foreach代碼... – WorldSignia

回答

0

問題是foreachloop太快,以至於webbrowser控件只能得到該列表的最後一個值。

WebBrowser控件已DocumentCompleted事件,你可以利用它在一個時間

通過一項參見MSDN

1

你的foreach不是「太快」,它只是不正確的示例。

foreach (string routeFrom in lstRoutesFrom) // this gets multiple 'routeFrom' values 
{ 
    //Prepare Data... 
    this.requestAirportFrom = routeFrom; // and now (over)write all to the same place 

    .... 
}  

只有最後routeFrom保存在(1)this.requestAirportFrom位置。