2008-12-15 30 views

Trả lời

19

Điều khiển biểu mẫu trình duyệt WebBrowser là trình bao bọc xung quanh Internet Explorer và nó không hiển thị tất cả chức năng của điều khiển ActiveX cơ bản và đặc biệt là sự kiện NavigateError. Đây là giải pháp thay thế:

Thêm tham chiếu đầu tiên vào SHDocVw.dll vào dự án của bạn (tab COM của cửa sổ Thêm tham chiếu). Sau đó, bạn có thể thực hiện các thao tác sau để nắm bắt lỗi:

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

Cảm ơn, điều đó hoàn hảo! Câu trả lời hay. – tpower

9

Tôi tìm thấy cách khác để giải quyết vấn đề này mà không cần đặt tham chiếu đến tệp SHDocVw.

Xem web browser CreateSink method trên MSDN.

Các vấn đề liên quan