2011-01-29 8 views
4

WinForms 응용 프로그램에서 간단한 웹 브라우저 만들기. 내 응용 프로그램에서 나는 다음과 같은 구성 요소가 있습니다텍스트 상자에 URL 주소 표시

  • 텍스트 상자를
  • 웹 브라우저

요구 사양 :

  • 에서는 WebBrowser에서 웹 링크 중 하나를 클릭하면 URL 주소가해야 텍스트 상자에 표시됩니다.

목표 :

  • 주소 필드에 URL 주소를 표시하십시오.

문제 :

  • 내가 사용해야하는 이벤트 몰라? 구성 요소 웹 브라우저에서 이벤트 DocumentCompletedVisibleChanged을 사용해 보았지만 작동하지 않았습니다.
  • 구성 요소 WebBrowser에서 텍스트 상자로 URL 주소를 어떻게 표시해야합니까?
+0

참조 [dotBrowser 프로젝트] (http://sourceforge.net/projects/dotbrowser/develop) 나는 Navigating' 이벤트가 있기 때문에이 경우 주소 텍스트 상자에 더 좋다 '라고 생각 예를 – abatishchev

답변

4
this.Browser.DocumentTitleChanged += Browser_DocumentTitleChanged; 
private void Browser_DocumentTitleChanged(object sender, EventArgs e) 
{ 
    Uri url = ((WebBrowser)sender).Document.Url; 
    txtUrl.Text = url.ToString(); 
} 

또는

this.Browser.Navigating += Browser_Navigating; 
private void Browser_Navigating(object sender, WebBrowserNavigatingEventArgs e) 
{ 
    Uri url = e.Url; 
    txtUrl.Text = url.ToString(); 
} 
+0

문서에 제목이 없거나 이전 문서의 제목과 새 문서의 제목이 같으면 어떻게됩니까? – user

+1

@Nate :이 경우'DocumentTitleChanged'가 발생하지 않는다는 것을 의미합니까? 나는 확신한다. – abatishchev

1

Navigated 이벤트를 사용해야합니다. 이벤트가 발생하면이처럼 WebBrowserUrl 속성 값으로 텍스트 상자의 Text 속성을 설정할 수 있습니다 :

addressBarTextBox.Text = webBrowser.Url.AbsoluteUri; 
+1

로 내비게이션이 발생할 때까지 "매달 리지"않을 것입니다. – abatishchev

+0

@abatishchev, 좋은 지적입니다. –

1

은 내가 WebBrowser.Navigated를 사용하는 것이 좋습니다 것 행사. 문서가로드되기 시작하면 즉시 트리거됩니다.

예 :

private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e) 
{ 
    textBox1.Text = webBrowser.Url.AbsoluteUri; 
} 
+0

와우, 나는 webBrowser.Url을 생각하고 있었다. – user

관련 문제