Kontrola formularzy okna WebBrowser jest opakowana wokół programu Internet Explorer i nie ujawnia wszystkich funkcji podstawowego kontrolki ActiveX, a w szczególności zdarzenia NavigateError. Oto sposób obejścia tego problemu:
Najpierw dodaj odwołanie do SHDocVw.dll do swojego projektu (karta COM okna Dodaj referencję). Następnie można wykonać następujące czynności, aby uchwycić błędy:
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
}
Dzięki, to jest idealne! Niezła odpowiedź. – tpower