0

私は c# プログラミング言語の初心者です。単純な Web ブラウザをウィンドウ フォームに配置しました。ブラウザに URL アドレスを割り当て、指定したリンクがブラウザで正常に開かれたかどうかを確認したいと考えています。

というイベントハンドラがあることを知っています

    private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)

ただし、ブラウザのURLを割り当てた後、次のようなものを書きたい

    if (webBrowser1_DocumentCompleted)
    {
     //my code here
    }

これは可能ですか?「WebBrowserReadyState」を使用できることは知っていますが、Document ready を使用することをお勧めします。

4

3 に答える 3

3

これがあなたが探しているものであるかどうかはわかりませんが、これは私が試みるものです:

まず、フォームクラスのコンストラクターでイベントハンドラーを作成します。

public void Form1()
{
     webBrowser1.DocumentCompleted  +=
    new WebBrowserDocumentCompletedEventHandler(WebDocumentCompleted);
}

この後、そのイベントが発生したときに呼び出されるメソッドを作成する必要があります。

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

お役に立てれば!

于 2011-10-26T11:08:48.907 に答える
1

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

webBrowser.DocumentCompleted += webBrowser_DocumentCompleted;

クラスには、必要なコーディングを行うことができるこのシグネチャを持つメソッドが必要です。

void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    // Do something after the document is loaded.
}
于 2011-10-26T11:07:13.553 に答える
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.
            }

        }
    }
于 2011-10-26T11:09:11.667 に答える