![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 豌豆 ![]()
![]() |
但是,當他執行click的動作之後 網頁還尚未載入完成,我的程式就繼續執行下一行了 因為程式的下一個步驟是處理搜尋到的網頁的頁面上的資料 所以如果網頁還沒載入完成就無法繼續執行 想請問,要如何判斷它網頁已經載入完成,再繼續執行下去呢? 有用過Thread.Sleep(); 也有設旗標在webBrowser1_ProgressChanged裡記錄progressBar1.Value是否等於100 但都沒成功... |
1樓 |
用ReadyState 判斷吧
本篇文章回覆於2009-07-11 15:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
2樓 |
本篇文章回覆於2009-07-11 15:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
3樓
作者回應
豌豆 ![]() |
還是不行耶...
本篇文章回覆於2009-07-12 09:20
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
4樓
作者回應
豌豆 ![]() |
還是不行耶...
本篇文章回覆於2009-07-12 09:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
5樓
作者回應
豌豆 ![]() |
上面的複製錯了
還是網頁尚未載入完成就繼續執行下面的function了 然後因為原始碼還沒完成(或是還是上一頁的原始碼,就無法在該原始碼中做處理)
本篇文章回覆於2009-07-12 09:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
6樓 |
這樣改吧,在您的Browser控制項的DocumentCompleted去做這個判斷,因為您上頭的寫法程式並沒有等待頁面載完,所以if (webBrowser1.ReadyState == WebBrowserReadyState.Complete)應該永遠都是false。
本篇文章回覆於2009-07-12 13:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
7樓 |
改成這樣吧
本篇文章回覆於2009-07-12 13:34
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
8樓
作者回應
豌豆 ![]() |
我說明清楚一點我的程式好了
1.程式開啟時,先載入某搜尋頁面,載入完成後,在介面上的textbox輸入查詢之關鍵字,接著按下button 2.按下這個button會將介面上的textbox裡的文字傳到該網頁的搜尋文字方塊 3.並模擬該網頁上的搜尋按鈕,按下按鈕後進入搜尋到該關鍵字的頁面 4.接著處理搜尋到的頁面的原始碼 目前試過好多方法都不成功的部份是3.,因為當按下button後,該網頁尚未載入完成,程式就繼續執行下去了 之前有加入 DialogResult result; result = MessageBox.Show("搜尋完成", "搜尋完成", MessageBoxButtons.OK, MessageBoxIcon.Information); if (result == DialogResult.OK) { //要執行的function } 它會一按下button就馬上跳出MessageBox,需要等progressBar跑完後再按下確定才不會出錯 不過,如果不要加MessageBox,則程式會跑得比網頁快,就是現在遇到的問題,曾經試過一開始提問時所說的方法,但都沒成功 如果像gipi版友所建議的寫法,是不是和progressBar1.Value==100一樣呢? 不過,我要執行的function不能放在這個判斷裡面耶,因為一開始程式執行時所載入的初始網頁,就會影響到這個function 謝謝以上各位這麼用心的回答,不過目前還是沒有合適的解答
本篇文章回覆於2009-07-12 18:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
9樓
作者回應
豌豆 ![]() |
倒數第二句話有點沒說清楚
應該說 我要執行的function不能放在這個判斷裡面,因為一開始程式執行時所載入的初始網頁,就會影響到webBrowser1_ProgressChanged()
本篇文章回覆於2009-07-12 18:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
10樓 |
您有試過我#6的做法嗎?
本篇文章回覆於2009-07-12 18:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
11樓
作者回應
豌豆 ![]() |
有試過
這樣寫,因為我的程式開啟時,就會先載入某搜尋頁面 這一個步驟就會跳到這個判斷裡,但還沒在介面中輸入要查詢的關鍵字等等
本篇文章回覆於2009-07-13 13:12
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
12樓 |
您在加上一個變數用來記錄是不是第一次載入,如果是第一次就不要執行您的動作,下面請參考。
本篇文章回覆於2009-07-14 00:24
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
13樓 |
#7不是符合你的功能嗎??
本篇文章回覆於2009-07-14 07:19
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
14樓
作者回應
豌豆 ![]() |
To sparkdeng:
我的webBrowser1.Navigate("http://........");是寫在public Form1()裡面 我也有嘗試過你建議的寫法,不過行不通耶 To gipi: 用你#12的方法有成功呢,不過它出現了另一個問題 找了很久還是不清楚為什麼 (我之前也有試過用一個bool的變數來記錄,判斷search_button是否click,不過沒成功)
本篇文章回覆於2009-07-14 16:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
15樓 |
#14,是什麼樣的問題呢?
本篇文章回覆於2009-07-14 20:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
回覆 |
如要回應,請先登入. |