문서 내용
요약
Visual Basic.NET 응용 프로그램에 WebBrowser 컨트롤을 호스팅하는 NewWindow2 이벤트 window.open 스크립트에 의해 생성 되는 호출을 처리할 수 있습니다. 그러나 아닙니다 확실 신청이 WebBrowser 호스트 창의 올바르게 조정할 수 있도록 window.open기능 인수에 전달 된 너비 및 높이 값을 얻을 수는 어떻게. 이 문서에서는 새 너비와 높이 WebBrowser 컨트롤의 구하는 방법 및 폼의 크기를 적절 하 게 조정 하는 방법을 보여 줍니다.
요구 사항
다음은 권장되는 하드웨어, 소프트웨어, 네트워크 인프라 및 필요한 서비스 팩 목록입니다.
-
Microsoft Visual Studio.NET
-
Microsoft Internet Explorer 5.5 서비스 팩 2 이상
예제 만들기
Visual Basic.NET 응용 프로그램에 WebBrowser 컨트롤을 호스팅하는 방법, WebBrowser 컨트롤의 NewWindow2 이벤트를 처리 하는 방법 및 WindowSetWidth 및 이동할 이벤트를 처리 하는 방법을 설명합니다 응용 프로그램의 크기를 조정 합니다.
-
다음과 같이 Visual Basic 새 Windows 응용 프로그램을 만듭니다.
-
Visual Studio.NET을 시작 합니다.
-
파일 메뉴에서 새로 만들기를 가리키고 프로젝트를 클릭 합니다.
-
프로젝트 형식Visual Basic 프로젝트를 클릭 합니다. 템플릿Windows 응용 프로그램을 클릭 합니다.
-
-
도구 상자에서 일반을 클릭 하 고 도구 상자에서를 마우스 오른쪽 단추로 누른 다음 도구 상자 사용자 지정.
-
COM 구성 요소 탭에서 Microsoft 웹 브라우저 확인란을 선택한 다음 확인을 클릭 합니다.
-
도구 상자에서 탐색기 창에서 두 번 클릭 합니다.
-
TextBox 컨트롤 및 Button 컨트롤을 폼에 추가 합니다.
-
코드 창에서 단추의 onClick 이벤트의 구현을 보려면 단추를 두 번 클릭 하 고 다음 코드를 추가 합니다.
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click AxWebBrowser1.Navigate(TextBox1.Text) End Sub
이 코드를 사용 하면 텍스트 상자에 지정 된 URL을 찾을 수 있습니다.
-
NewWindow2에 대 한 처리기 함수를 작성 하는 다음 코드를 추가 합니다.
Private Sub AxWebBrowser1_NewWindow2(ByVal sender As Object, _ ByVal e As AxSHDocVw.DWebBrowserEvents2_NewWindow2Event) _ Handles AxWebBrowser1.NewWindow2 Dim frmWB As Form1 frmWB = New Form1() frmWB.AxWebBrowser1.RegisterAsBrowser = True e.ppDisp = frmWB.AxWebBrowser1.Application frmWB.Visible = True End Sub
-
이동할에 대 한 처리기 함수를 작성 하는 다음 코드를 추가 합니다.
Private Sub AxWebBrowser1_WindowSetHeight(ByVal sender As Object, _ ByVal e As AxSHDocVw.DWebBrowserEvents2_WindowSetHeightEvent) _ Handles AxWebBrowser1.WindowSetHeight Dim heightDiff As Integer heightDiff = Me.Height - Me.AxWebBrowser1.Height Me.Height = heightDiff + e.height End Sub
-
WindowSetWidth에 대 한 처리기 함수를 작성 하는 다음 코드를 추가 합니다.
Private Sub AxWebBrowser1_WindowSetWidth(ByVal sender As Object, _ ByVal e As AxSHDocVw.DWebBrowserEvents2_WindowSetWidthEvent) _ Handles AxWebBrowser1.WindowSetWidth Dim widthDiff As Integer widthDiff = Me.Width - Me.AxWebBrowser1.Width Me.Width = widthDiff + e.width End Sub
전체 코드 예제
Public Class Form1 Inherits System.Windows.Forms.Form#Region " Windows Form Designer generated code " 'Omitted#End Region Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click AxWebBrowser1.Navigate(TextBox1.Text) End Sub Private Sub AxWebBrowser1_NewWindow2(ByVal sender As Object, _ ByVal e As AxSHDocVw.DWebBrowserEvents2_NewWindow2Event) _ Handles AxWebBrowser1.NewWindow2 'MessageBox.Show(AxWebBrowser1.Height & ":" & AxWebBrowser1.Width) 'MessageBox.Show(doc.body.innerHTML) Dim frmWB As Form1 frmWB = New Form1() frmWB.AxWebBrowser1.RegisterAsBrowser = True 'frmWB.AxWebBrowser1.Navigate2("about:blank") e.ppDisp = frmWB.AxWebBrowser1.Application frmWB.Visible = True 'MessageBox.Show(frmWB.AxWebBrowser1.Height & ":" & frmWB.AxWebBrowser1.Width) End Sub Private Sub AxWebBrowser1_WindowSetHeight(ByVal sender As Object, _ ByVal e As AxSHDocVw.DWebBrowserEvents2_WindowSetHeightEvent) _ Handles AxWebBrowser1.WindowSetHeight 'MessageBox.Show("In SetHeight" & Me.Height & ":" & e.height) Dim heightDiff As Integer heightDiff = Me.Height - Me.AxWebBrowser1.Height Me.Height = heightDiff + e.height End Sub Private Sub AxWebBrowser1_WindowSetWidth(ByVal sender As Object, _ ByVal e As AxSHDocVw.DWebBrowserEvents2_WindowSetWidthEvent) _ Handles AxWebBrowser1.WindowSetWidth 'MessageBox.Show("In SetWidth" & Me.Width & ":" & e.width) Dim widthDiff As Integer widthDiff = Me.Width - Me.AxWebBrowser1.Width Me.Width = widthDiff + e.width End SubEnd Class
작동 하는지 확인
-
응용 프로그램을 빌드하십시오.
-
메모장을 엽니다. Test.htm, 명명 된 새 파일을 만들고 다음 코드를 추가 합니다.
<HTML><HEAD><META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"><TITLE></TITLE><script>function openWin(){var win;win = window.open("http://www.microsoft.com","blah","width=600, height=600");}</script></HEAD><BODY><button onClick=openWin()>Open Window</button></BODY></HTML>
-
웹 서버에서 Test.htm을 저장 합니다.
-
응용 프로그램을 실행 합니다.
-
Test.htm 페이지를 찾아 다음 단추를 클릭 합니다. 구성 요소 개발자는 Microsoft 회사 웹 사이트 응용 프로그램의 새 인스턴스에서 열립니다. 폼에 window.open() 호출에 전달 하는 기능에 따라 크기가 조정 됩니다.
참조
자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조 하려면 아래 문서 번호를 클릭 합니다.
311284 방법: Visual Basic.NET 응용 프로그램에서 문서 이벤트를 처리 합니다.
259963 방법: 너비를 구하고 Visual C++ WebBrowser 호스트 Window.open 내부에 제공 된 높이속성과 이벤트를 노출 하는 메서드 및 WebBrowser 컨트롤에 대 한 자세한 내용은 다음 Microsoft 웹 사이트를 참조.
Visual Basic 개발자가http://msdn2.microsoft.com/en-us/library/Aa752043.aspx 에 대 한 WebBrowser 컨트롤: 참조Microsoft Internet Explorer 용 웹 기반 솔루션을 개발 하는 방법에 대 한 자세한 내용은 다음 Microsoft 웹 사이트를 방문 하십시오.
http://msdn.microsoft.com/ie/ http://support.microsoft.com/iep