방법: .NET Compact Framework에서 WebBrowser 컨트롤 사용
업데이트: 2007년 11월
.NET Compact Framework에서는 Windows Forms WebBrowser 컨트롤에 대한 핵심 기능을 지원합니다. 다음 멤버를 사용하려면 Pocket PC 또는 Smartphone용 Windows Mobile 버전 5.0 소프트웨어가 필요합니다. 이 목록은 변경될 수 있습니다.
CanGoBack 속성
CanGoForward 속성
IsBusy 속성
IsOffline 속성
ReadyState 속성
CanGoBackChanged 이벤트
GoBack 메서드
GoForward 메서드
Refresh 메서드
다음 고려 사항은 PocketPC용 Windows Mobile 2003 및 Smartphone용 Windows Mobile 2003에만 적용됩니다.
Refresh 메서드는 NotSupportedException 예외를 throw합니다.
WebBrowser 컨트롤에는 HTML 폼에 포함된 하위 컨트롤이 있을 수 있으므로 GotFocus 이벤트를 모니터링하여 WebBrowser 컨트롤에 포커스가 있는지 여부를 확인할 수 없습니다. 이 문제를 해결하려면 포커스가 있을 수 있는 다른 컨트롤을 제거하는 프로세스를 사용합니다.
Url 속성은 WebBrowserNavigatingEventArgs에 설정되지 않으며 빈 문자열을 반환합니다.
Microsoft Windows CE 5.0이 실행되는 Pocket PC 또는 Smartphone 이외의 장치에서 새 URL을 방문하면 Navigated 및 DocumentCompleted 이벤트가 모두 두 번 발생합니다. 이 오류는 이후 Windows CE 릴리스에서 수정될 예정입니다.
HelpRequested 이벤트에 응답하는 WebBrowser 인스턴스를 만들어 응용 프로그램용 온라인 도움말 항목을 표시할 수 있습니다.
.NET Compact Framework는 DocumentText 속성을 제외하고 Document 속성 및 해당 관련 속성과 이벤트를 지원하지 않습니다. DocumentText를 사용하여 링크 및 간단한 HTML 폼 등을 제공하기 위해 사용자에게 HTML을 표시할 수 있지만 .NET Compact Framework에서는 이 속성을 사용하여 웹 페이지의 HTML 콘텐츠에 액세스할 수 없습니다.
Navigating 이벤트를 처리하는 코드에서 WebBrowserDocumentCompletedEventArgs.Url 속성을 사용하여 폼에 대한 응답을 확인할 수 있습니다. 이어지는 첫 번째 절차에 코드 예제가 제공됩니다.
Smartphone 응용 프로그램에서 WebBrowser 컨트롤을 빠져 나올 수 없습니다. 이 문제를 해결하기 위해 키 이벤트를 검색하고 다른 컨트롤에 포커스를 설정할 수 있습니다. 이어지는 두 번째 절차에 코드 예제가 제공됩니다.
참고: |
---|
이 문제를 해결하려면 Windows Mobile 5.0 또는 .NET Compact Framework 3.5가 필요합니다. |
WebBrowser 컨트롤 사용에 대한 일반 정보는 방법: Windows Forms 응용 프로그램에 웹 브라우저 기능 추가를 참조하십시오.
포함된 HTML 컨트롤에서 정보를 수집하려면
DocumentText 속성을 사용하여 WebBrowser 컨트롤에 HTML을 표시합니다. 이 HTML에는 URL을 지정하기 위한 링크 및 텍스트 상자가 있는 폼이 포함되어 있습니다.
Dim sb As New StringBuilder() sb.Append("<html><body>") sb.Append("<a href=") sb.Append("""") sb.Append("https://www.microsoft.com") sb.Append("""") sb.Append(">Microsoft</a><p>") sb.Append("Specify a URL:<br>") sb.Append("<form action=''><input type='text' name='address'/>") sb.Append("<br><input type='submit'>") sb.Append("</form></body></html>") webBrowser1.DocumentText = sb.ToString()
StringBuilder sb = new StringBuilder(); sb.Append("<html><body>"); sb.Append("<a href="); sb.Append("\""); sb.Append("https://www.microsoft.com"); sb.Append("\""); sb.Append(">Microsoft</a><p>"); sb.Append("Specify a URL:<br>"); sb.Append("<form action=''><input type='text' name='address'/>"); sb.Append("<br><input type='submit'>"); sb.Append("</form></body></html>"); webBrowser1.DocumentText = sb.ToString();
Navigating 이벤트를 사용하여 URL에 폼의 응답이 포함되는지 여부를 확인합니다. 응답이 포함되면 해당 URL로 이동합니다.
Private Sub webBrowser1_Navigating(ByVal sender As Object, ByVal e As WebBrowserNavigatingEventArgs) Handles webBrowser1.Navigating Dim x As Integer ' The URL contains the results of the ' HTML form following the equals sign. x = e.Url.ToString().LastIndexOf("=") If x <> - 1 Then Dim Redirect As String Redirect = e.Url.ToString().Substring((x + 1)) If Redirect <> "" Then ' Error handling code omitted in this example. ' Uri constructor throws a UriFormatException if there's ' an error. webBrowser1.Navigate(New Uri(Redirect)) Else MessageBox.Show("Specify a URL") End If End If End Sub
private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e) { int x; // The URL contains the results of the // HTML form following the equals sign. x = e.Url.ToString().LastIndexOf("="); if (x != -1) { string Redirect; Redirect = e.Url.ToString().Substring(x + 1); if (Redirect != "") { // Error handling code omitted in this example. // Uri constructor throws a UriFormatException if there's // an error. webBrowser1.Navigate(new Uri(Redirect)); } else { MessageBox.Show("Specify a URL"); } } }
이전 Visual Basic 코드 예제에는 Navigating 이벤트 처리기가 이미 컨트롤과 연결되어 있습니다. 다음과 같이 C#에서 이 이벤트 처리기를 선언합니다.
this.webBrowser1.Navigating += new System.Windows.Forms.WebBrowserNavigatingEventHandler(this.webBrowser1_Navigating);
Smartphone에서 WebBrowser를 빠져 나오려면
다음 코드 예제에서는 탐색 키에서 UP 키를 눌렀을 때 다른 컨트롤에 포커스를 설정합니다.
WebBrowser 컨트롤은 Microsoft Pocket Internet Explorer의 탭 논리를 사용하여 이 컨트롤로 표시된 웹 사이트의 다른 링크 및 포함된 컨트롤로 이동할 수 있도록 합니다. KeyPreview 속성을 사용하여 이러한 기본 탭 동작을 재정의할 수 있습니다.
다음 코드 예제에서는 폼의 생성자 또는 폼에 대한 Load 이벤트를 처리하는 코드에서 KeyPreview가 true로 설정되었다고 가정합니다.
Protected Overrides Sub OnKeyDown(ByVal keyg As KeyEventArgs) If keyg.KeyCode = Keys.Up Then textBox1.Focus() End If MyBase.OnKeyDown(keyg)
protected override void OnKeyDown(KeyEventArgs keyg) { if (keyg.KeyCode == Keys.Up) { textBox1.Focus(); } base.OnKeyDown(keyg); }
코드 컴파일
이 예제에는 다음과 같은 네임스페이스에 대한 참조가 필요합니다.
참고 항목
작업
방법: Windows Forms 응용 프로그램에 웹 브라우저 기능 추가