2008-12-15 38 views

回答

19

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    
} 
+0

謝謝,這很完美!很好的答案。 – tpower 2008-12-15 16:36:35

相關問題