關(guān)于DocumentCompleted事件,MSDN給出的解釋是在文檔加載完畢后執(zhí)行,但是在我的程序中DocumentCompleted卻被多次調(diào)用,查了一下資料,大概出現(xiàn)了以下幾種情況。
1、WebBrowser載入一個(gè)頁(yè)面后DocumentCompleted事件會(huì)執(zhí)行兩次,但這兩次的ReadyState狀態(tài)不一樣,分別是Intercative和Complete。而MSDN對(duì)這兩種狀態(tài)值的解釋是:Complete該控件已完成新文檔及其所有內(nèi)容的加載;Interactive該控件已經(jīng)加載足夠的文檔以允許有限的用戶(hù)交互,比如單擊已顯示的超鏈接。由此可見(jiàn),實(shí)際上DocumentCompleted事件會(huì)在Interactive狀態(tài)和Complete狀態(tài)各調(diào)用一次,那么我們可以根據(jù)我們的需要來(lái)判斷到底需要那一次。解決辦法實(shí)例代碼如下:
3、對(duì)于以上兩種情況我是沒(méi)遇到,卻碰到了第三種情況:在我的DocumentCompleted事件里執(zhí)行了相應(yīng)的代碼,結(jié)果又觸發(fā)了一次DocumentCompleted事件,如此循環(huán)往復(fù),沒(méi)完沒(méi)了。使用webBrowser1.Stop(),還是沒(méi)法停止。webBrowser1.Nagviate("about:blank")問(wèn)題還是依舊。這時(shí)候我們只能卸載DocumentCompleted事件了,即在DocumentCompleted事件里執(zhí)行完你需要的代碼后,再來(lái)一句:
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注