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

首頁 > 學院 > 開發設計 > 正文

C#:如何解決WebBrowser.DocumentCompleted事件的多次調用

2019-11-17 02:49:41
字體:
來源:轉載
供稿:網友

C#:如何解決WebBrowser.DocumentCompleted事件的多次調用

關于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);

轉載自:http://m.survivalescaperooms.com/rchlz/archive/2009/02/27/1399274.html

相關文章

WebBrowser.DocumentCompleted 事件

WebBrowser類

WebBrowser.Url 屬性

WebBrowser.Navigate 方法


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西充县| 绿春县| 军事| 乌鲁木齐县| 新野县| 宜宾市| 九江市| 九寨沟县| 吴忠市| 阿鲁科尔沁旗| 鹿泉市| 桦南县| 贵阳市| 江北区| 水富县| 旺苍县| 百色市| 修武县| 花莲市| 宁强县| 怀远县| 沿河| 荣昌县| 乐安县| 美姑县| 榆社县| 乾安县| 安义县| 玛纳斯县| 塔河县| 克东县| 平遥县| 汤阴县| 桦甸市| 祥云县| 吉木萨尔县| 长丰县| 韩城市| 新乐市| 涿鹿县| 沈阳市|