2009-03-01 3 views
6

제목이 모두 포함되어 있다고 생각합니다. 컨트롤을 사용하여 일부 기본 HTML을 일부 마크 업과 함께 표시하고 거기에 링크가있을 수도 있습니다. 내가하고 싶은 것은 모든 링크를 강제로 클릭하여이 링크를 컨트롤의 페이지로 이동하는 대신 새 IE 창에서 열도록하는 것입니다.WinForms WebBrowser Control : 새로운 (IE) 창에서 외부 링크를 강제로 열어 봅니다.

아이디어가 있으십니까?

답변

7

네비게이션 이벤트를 처리하고 WebBrowserNavigatingEventArgs의 Cancel 속성을 true로 설정하고 Process.Start를 사용하여 IE에서 URL을 열 수 있습니다. 이 같은

뭔가 :

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

마법처럼 작동합니다 - 거의. 탐색을 취소하기 전에 e.URL.Host.Length> 0인지 확인해야했습니다. 웹 브라우저 컨트롤을 설정하면 "about : blank"로 이동하고이 작업을 취소하면 문서 텍스트를 설정할 수 없습니다. 어쨌든, 도와 주셔서 감사합니다. 건배 –

관련 문제