C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 76 を表示中)
■45225 / )  Re[2]: リンクをクリックしたときのイベントを取得したい
□投稿者/ コロナ (2回)-(2010/01/06(Wed) 16:25:21)
ごうさん、早速ありがとうございました。
BeforeNavigate または BeforeNavigate2ということだったのですが、
http://vsug.jp/tabid/63/forumid/45/threadid/9273/scope/posts/Default.aspx
を見たら、Visual Studio 2005の場合は、Navigating イベントという記述があり、
次のように実装してみました。

string URL = http://〜〜;
private void Form_Load(object sender, EventArgs e){
webBrowser.Navigate(URL);
}

private void webBrowser_Navigating(object sender, WebBrowserNavigatingEventArgs e){
	if (e.Url.ToString() != URL){
		webBrowser.Navigate(e.Url.ToString());
	}
}

質問の意図としては、リンクをクリックしたときにそのURLを開きたい、ということでした。
しかしながら、この方法だと、方法がまずいのかもしれませんが、
いくつも問題が出ているようで、うまく動きません。
デバッグしてみたところ、次のようなことのようです。

(1)リンクをクリックしたときだけでなく、最初にページを開いたときもNavigatingの処理をする。
なるほど、NavigatingがWebページを開くときのイベントであるとすれば、
それはわからないではないが、なんかループしている気もする…。

(2)クリックしたときにイベントを取れると思ったのですが、
じっさいにはページ内のリンクをぜんぶ列挙してひとつひとつ処理しているみたい。
そのため、多数のリンクを含むページの場合、処理が終了しない。
ページ内に自分のページへのリンクがある場合、ループしてしまう。

回避策は、ifで条件を列挙する以外ないんでしょうか?
よろしくアドバイスお願いします。

返信 編集キー/


管理者用

- Child Tree -