国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#中WebBrowser.DocumentCompleted事件多次調用問題解決方法

2019-10-29 21:43:57
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了C#中WebBrowser.DocumentCompleted事件多次調用問題解決方法,本文講解了3種情況和各自情況的解決方法,需要的朋友可以參考下
 

關于DocumentCompleted事件,MSDN給出的解釋是在文檔加載完畢后執行,但是在我的程序中DocumentCompleted卻被多次調用,查了一下資料,大概出現了以下幾種情況。

1、WebBrowser載入一個頁面后DocumentCompleted事件會執行兩次,但這兩次的ReadyState狀態不一樣,分別是Intercative和Complete。而MSDN對這兩種狀態值的解釋是:Complete該控件已完成新文檔及其所有內容的加載;Interactive該控件已經加載足夠的文檔以允許有限的用戶交互,比如單擊已顯示的超鏈接。由此可見,實際上DocumentCompleted事件會在Interactive狀態和Complete狀態各調用一次,那么我們可以根據我們的需要來判斷到底需要那一次。解決辦法實例代碼如下:

復制代碼代碼如下:

if(webBrowser1.ReadyState!=WebBrowerReadyState.Complete)
    return; 

2、如果一個頁面中含有多個框架頁,那么在每個框架頁加載完成時也可能觸發一次DocumentCompleted事件(MSDN對其解釋是在多個的幀的情況下DocumentComplete獲取觸發多次。并非每個框架將觸發此事件,但觸發DownloadBegin事件的每個框架將觸發相應的DocumentComplete事件)。這種情況下解決辦法實例代碼如下:
復制代碼代碼如下:

if(e.Url.ToString()!=webBrowser1.Url.ToString())
    return;

此外,MSDN給出了另外一種方案,詳見:

 

3、對于以上兩種情況我是沒遇到,卻碰到了第三種情況:在我的DocumentCompleted事件里執行了相應的代碼,結果又觸發了一次DocumentCompleted事件,如此循環往復,沒完沒了。使用webBrowser1.Stop(),還是沒法停止。webBrowser1.Nagviate("about:blank")問題還是依舊。這時候我們只能卸載DocumentCompleted事件了,即在DocumentCompleted事件里執行完你需要的代碼后,再來一句:

復制代碼代碼如下:

webBrowser1.DocumentCompleted -= new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 庆元县| 仁寿县| 大石桥市| 中阳县| 高阳县| 黄大仙区| 金坛市| 文化| 中卫市| 班戈县| 芒康县| 江西省| 太仓市| 同心县| 百色市| 鄂尔多斯市| 阜康市| 蒙阴县| 建水县| 霞浦县| 花莲县| 滕州市| 古浪县| 榆社县| 江阴市| 绥芬河市| 英德市| 新邵县| 扎囊县| 宁强县| 贵州省| 高邑县| 八宿县| 原平市| 呼和浩特市| 桦川县| 衡阳县| 松滋市| 广汉市| 涟源市| 平湖市|