2009-03-01 28 views
6

Tôi nghĩ rằng tiêu đề bao gồm tất cả. Tôi sử dụng điều khiển để hiển thị một số HTML cơ bản với một số đánh dấu và có thể cũng có liên kết trong đó. Điều tôi muốn làm là buộc nhấp vào liên kết bất kỳ để mở liên kết này trong cửa sổ IE mới thay vì điều hướng đến trang đó trong chính điều khiển.WinForms WebBrowser Control: Buộc tất cả các liên kết mở ra bên ngoài trong một cửa sổ (IE) mới

Bất kỳ ý tưởng nào?

Trả lời

7

Bạn có thể xử lý sự kiện Điều hướng, đặt thuộc tính Hủy của WebBrowserNavigatingEventArgs thành true và sử dụng Process.Start để mở URL trong IE.

Something như thế này:

private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e) 
{ 
    // prevents WebBrowser to navigate 
    if (e.Url.Host.Length > 0) // Otherwise the default about:blank when you init the control doesn't work 
    { 
     e.Cancel = true; 

     // Open the URL in an IE window 
     System.Diagnostics.Process process = new System.Diagnostics.Process(); 
     process.StartInfo.FileName = e.Url.ToString(); 
     process.Start(); 
    } 
} 
+2

hoạt động giống như một nét duyên dáng - gần. Tôi phải kiểm tra xem e.URL.Host.Length> 0 trước khi tôi hủy điều hướng. Khi tôi thiết lập điều khiển webbrowser nó sẽ điều hướng đến "about: blank" và khi tôi hủy bỏ điều này, tôi không thể đặt bất kỳ văn bản tài liệu nào. Dù sao, tôi hiểu rồi, nhờ sự giúp đỡ của bạn ... cổ vũ –

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