У меня есть приложение .Net Froms, которое отображает веб-страницы через элемент управления WebBrowser.
Могу ли я каким-либо образом определить, показывает ли элемент управления ошибку «Страница не найдена» или «Невозможно отобразить веб-страницу»? Похоже, что обработчиков событий ошибок нет.





Элемент управления Windows Forms 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
}
Я нашел другой способ решить эту проблему без указания ссылки на dll SHDocVw.
См. метод CreateSink в веб-браузере в MSDN.
Спасибо, отлично! Хороший ответ.