2011-10-26 2 views
0

私はC#プログラミング言語のスターターです。私は簡単なWebブラウザをウィンドウのフォームに配置しました。私はブラウザにURLアドレスを割り当て、ブラウザが私が提供したリンクを正常に開いたかどうかを確認したい。DocumentCompleted

は私が

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 

しかし、ブラウザのURLを割り当てた後、私は

if (webBrowser1_DocumentCompleted) 
    { 
    //my code here 
    } 

これが可能であるようなものを書きたいと呼ばれるイベントハンドラがあることを知っていますか?私はあなたが "WebBrowserReadyState"を使うことができると知っていますが、私はDocument readyを試して使いたいと思っています。

+0

はわからない私は、文は基本的にであれば、あなたのイベントが何をしているか、正確に従ってください。このイベントは、webBrowser1_DocumentCompletedが発生するとトリガーされます。あなたはそのようなifステートメント内でイベントを使用することはできません。 – MaxSan

+0

それはうまくいかない、ブラウザがページをダウンロードするのに時間がかかる。 DocumentCompletedイベントが発生するまで何もできません。プログラムのデッドロックが発生するのを待つことを試みます。 –

答えて

3

私はわからないんだけどこれはあなたが探しているものであるが、これは私がしようとするものである場合:

最初のフォームクラスのコンストラクタにイベントハンドラを作成します。

public void Form1() 
{ 
    webBrowser1.DocumentCompleted += 
    new WebBrowserDocumentCompletedEventHandler(WebDocumentCompleted); 
} 
をあなたはそのイベントが発生したときに呼び出されるメソッドを作成する必要があります。この後

void WebDocumentcompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
{ 
    //Your code here 
} 

は、この情報がお役に立てば幸い!

1

ウェブページのロードとレンダリングが非同期で実行されているため、イベントメソッドでロジック(ドキュメントがロードされた後に実行する必要があります)を実行する必要があります。あなたはこの方法でイベントをサブスクライブすることができます

webBrowser.DocumentCompleted += webBrowser_DocumentCompleted; 

あなたはあなたが欲しいコーディングを行うことが可能なこの署名を使用してクラスのメソッドを持っている必要があります:

void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
{ 
    // Do something after the document is loaded. 
} 
0

あなたはDownloadDataCompletedEventArgs(E)からの結果を検査することができます

class Program 
    { 
     static void Main(string[] args) 
     { 

      WebClient wb = new WebClient(); 
      wb.DownloadDataAsync("www.hotmail.com"); 
      wb.DownloadDataCompleted += new DownloadDataCompletedEventHandler(wb_DownloadDataCompleted); 
     } 

     static void wb_DownloadDataCompleted(object sender, DownloadDataCompletedEventArgs e) 
     { 
      if (e.Cancelled)//cancelled download by someone/may be you 
      { 
       //add necessary logic here 
      } 
      else if (e.Error)// all exception can be collected here including invalid download uri 
      { 
       //add necessary logic here 
      } 
      else if (e.UserState)// get user state for asyn 
      { 
       //add necessary logic here 
      } 
      else 
      { 
       //you can assume here that you have result from the download. 
      } 

     } 
    } 
関連する問題