Могу ли я обнаружить ошибки при использовании элемента управления .Net WebBrowser? - PullRequest
13 голосов
/ 15 декабря 2008

У меня есть приложение .Net Froms, которое отображает веб-страницы через элемент управления WebBrowser.

В любом случае можно ли определить, отображается ли на элементе управления ошибка " Страница не найдена " или " Не удается отобразить веб-страницу "? Кажется, что нет обработчиков событий ошибок.

Ответы [ 2 ]

20 голосов
/ 15 декабря 2008

Элемент управления Windows 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            
}
9 голосов
/ 05 ноября 2009

Я нашел другой способ решить эту проблему без установки ссылки на библиотеку SHDocVw.

См. метод CreateSink веб-браузера в MSDN.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...