WebBrowserでDocumentCompletedがたくさん発生
- 題名: WebBrowserでDocumentCompletedがたくさん発生
- 著者: ぼんじゃるの
- 日時: 2006/04/22 14:49:48
- ID: 15422
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: WebBrowserでDocumentCompletedがたくさん発生
- 著者: YAS
- 日時: 2006/04/22 17:47:15
- ID: 15428
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: WebBrowserでDocumentCompletedがたくさん発生
- 著者: ぼんじゃるの
- 日時: 2006/04/22 19:03:16
- ID: 15429
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: WebBrowserでDocumentCompletedがたくさん発生
- 著者: YAS
- 日時: 2006/04/22 20:16:36
- ID: 15431
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[4]: WebBrowserでDocumentCompletedがたくさん発生
- 著者: ぼんじゃるの
- 日時: 2006/04/22 21:34:53
- ID: 15433
- この記事の返信元:
- この記事への返信:
- ツリーを表示
[win2kpro+VC#2005Express]
GotDotNet
第 21 回 タブ表示型ブラウザをつくろう
http://www.gotdotnet.com/japan/student/column/firststep/firststep21.aspx
この記事を参考に簡単なタブブラウザを作ろうとしました。
フォームにTextBox、Button、TabControlを一つずつ貼り付け、
button1_Clickイベントハンドラに以下のコードを書きました。
this.SuspendLayout();
WebBrowser webBrowser = new WebBrowser();
TabPage tabPage = new TabPage();
webBrowser.Dock = DockStyle.Fill;
webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted);
tabPage.Controls.Add(webBrowser);
this.tabControl1.Controls.Add(tabPage);
this.tabControl1.SelectedTab = tabPage;
this.currentTabPage = tabPage;
this.currentWebBrowser = webBrowser;
webBrowser.Navigate(textBox1.Text);
this.ResumeLayout(false);
}
また、以下のイベントハンドラも追加しました
void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
i++;
Console.Write("{0}\r\n",i);
}
コンパイル後実行し、TextBoxに
http://www.codeproject.com/csharp/multitabwebbrowser.asp
(適当なページです)と入力し、
Buttonをクリックすると、
出力ウィンドウに
1
2
と表示されました。
ためしにButtonを5回連続でクリックしてみると
1
2
3
と続き
16
までいきました。
WebBrowserコントロールのDocumentCompletedイベントは、
ページを読み終えた瞬間に発生するとヘルプにありました。
しかし、どうして上記のような現象が起きてしまうのでしょうか?
www.google.co.jp
で実験してみると、ちゃんと1になりました。
連続でクリックしても12345となりました。
原因を究明しようと
http://www.codeproject.com/csharp/multitabwebbrowser.asp
のページをIEで開き、右クリックしてソース表示しようとしたら、
なぜかエディタが開きませんでした。
ひょっとしてフレームが関係しているのでしょうか?
だとしたら、ページ一つが読み込まれたことを確認するには
どのような実装が考えられるでしょうか?
よろしくお願いいたします。