WebBrowserコントロールを介してWebページを表示する.NetFromsアプリケーションがあります。
コントロールに「ページが見つかりません」または「ウェブページを表示できません」というエラーが表示されているかどうかを検出できる方法はありますか?エラーイベントハンドラーはないようです。
WebBrowserコントロールを介してWebページを表示する.NetFromsアプリケーションがあります。
コントロールに「ページが見つかりません」または「ウェブページを表示できません」というエラーが表示されているかどうかを検出できる方法はありますか?エラーイベントハンドラーはないようです。
WebBrowser ウィンドウ フォーム コントロールは、Internet Explorer のラッパーであり、基になる ActiveX コントロールのすべての機能、特に NavigateError イベントを公開するわけではありません。回避策は次のとおりです。
まず、SHDocVw.dll への参照をプロジェクトに追加します ([参照の追加] ウィンドウの [COM] タブ)。次に、次の操作を実行してエラーをキャプチャできます。
private void button1_Click(object sender, EventArgs e)
{
SHDocVw.WebBrowser instance = (SHDocVw.WebBrowser)webBrowser1.ActiveXInstance;
instance.NavigateError += new SHDocVw.DWebBrowserEvents2_NavigateErrorEventHandler(instance_NavigateError);
webBrowser1.Navigate("http://www.google.com/foo");
}
void instance_NavigateError(object pDisp, ref object URL, ref object Frame, ref object StatusCode, ref bool Cancel)
{
// Do whatever you want with the error
}
SHDocVw dll への参照を設定せずにこれを解決する別の方法を見つけました。
MSDN のWeb ブラウザーの CreateSink メソッドを参照してください。