程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#中WebBrowser.DocumentCompleted事宜屢次挪用成績處理辦法

C#中WebBrowser.DocumentCompleted事宜屢次挪用成績處理辦法

編輯:C#入門知識

C#中WebBrowser.DocumentCompleted事宜屢次挪用成績處理辦法。本站提示廣大學習愛好者:(C#中WebBrowser.DocumentCompleted事宜屢次挪用成績處理辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是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);

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved