.NET

【C#】WebBrowserでリンクをクリックしたときにIEなどの他のブラウザが立ち上がるのを防ぐ

更新日:

C#でWebBrowserでブラウザ機能などを作って、リンクを踏んだ時に他の標準のブラウザが開いてしまうということがあります。

そういうときには「NewWindow」というイベントが発生しているようです。なので、そのときに他のブラウザで開くようにしなくするとよいです。

//新しいウィンドウを開こうとしたら
private void webBrowser1_NewWindow(object sender, CancelEventArgs e)
{
	WebBrowser wb = (WebBrowser)sender;
	string txt = wb.StatusText;
	if (txt != "")
	{
		//開こうとしていたページに移る
		webBrowser1.Navigate(txt);
	}
	//ここで標準ブラウザで開くのをキャンセルしている
	e.Cancel = true;
}

「e.Cancel=true」にすると他のブラウザは開かなくなりますが、何も起きなくなります。そこで、上の例ではWebbrowserのNavigateメソッドを使って開こうとしたページにそのまま飛びます。

この場合は画面が一つ固定ですが、ここのイベントでタブとWebBrowserを動的に複製すれば通常のブラウザのような動作を再現できると思います。この場合タブはあらかじめ用意しておいて「追加」すればできます。

Amazonリンク
参考:mementoo.info

-.NET

Copyright© めめんと , 2021 All Rights Reserved Powered by AFFINGER5.