ÎN ACEASTĂ ACTIVITATE
Rezumat
Visual Basic .NET aplicațiile care găzduiesc controlul WebBrowser pot ocupa NewWindow2 evenimentului pentru a captura un apel window.open generat de script. Cu toate acestea, nu este imediat evident cum aplicația pot obține lățimea și înălțimea valorile care trec la argumentul caracteristiciwindow.open , astfel încât gazda WebBrowser posibilitatea să redimensionați fereastra corect. Acest articol demonstrează cum se obțin noi lățimea și înălțimea controlului WebBrowser și cum să redimensionați formular în mod corespunzător.
Cerințe
Lista următoare evidențiază hardware-ul, software-ul, infrastructura de rețea și pachete service pack recomandate:
-
Microsoft Visual Studio .NET
-
Microsoft Internet Explorer 5.5 Service Pack 2 sau o versiune ulterioară
Creați eșantion
Această secțiune descrie cum se găzduiesc controlul WebBrowser într-o aplicație Visual Basic .NET, cum să gestioneze evenimentul NewWindow2 al controlului WebBrowser și apoi cum să gestioneze WindowSetWidth și evenimente WindowSetHeight pentru redimensionați aplicația.
-
Creați o nouă cerere de Windows în Visual Basic, după cum urmează:
-
Porniți Visual Studio .NET.
-
În meniul fișier , indicați spre nouși apoi faceți clic pe proiect.
-
Sub Project Types, faceți clic pe Proiecte Visual Basic. Sub șabloane, faceți clic pe Aplicație Windows.
-
-
În caseta de instrumente, faceți clic pe General, faceți clic dreapta în setul de instrumente și apoi faceți clic pe Particularizare Toolbox.
-
În fila Componente COM , bifați caseta de selectare Browser-ul Web Microsoft și apoi faceți clic pe OK.
-
În caseta de instrumente, faceți dublu clic în fereastra de Explorer.
-
Adăugați un buton de control și un control casetă text la formular.
-
Faceți dublu clic pe butonul pentru a vedea implementarea evenimentului onClick a butonului în fereastra de cod și apoi adăugați următorul cod:
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click AxWebBrowser1.Navigate(TextBox1.Text) End Sub
Acest cod vă permite să navigați la adresa URL pe care le specificați în caseta text.
-
Adăugaţi codul următor pentru a scrie funcția de rutină de tratare pentru 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
-
Adăugaţi codul următor pentru a scrie funcția de rutină de tratare pentru WindowSetHeight:
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
-
Adăugaţi codul următor pentru a scrie funcția de rutină de tratare pentru 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
Mostră de cod complet
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
Verificați că funcţionează
-
Compilarea aplicației.
-
Deschideți Notepad. Creați un fișier nou, denumit Test.htm, și apoi adăugați următorul cod:
<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>
-
Salvați Test.htm pe serverul Web.
-
Executați aplicația.
-
Navigați la pagina Test.htm, și apoi faceți clic pe butonul. Observați că site-ul Web Microsoft firmă se deschide în o nouă instanță a aplicației. Formularul este redimensionată în funcţie de caracteristicile care este transmis cu apelul window.open.
Referințe
Pentru informații suplimentare, faceți clic pe numerele de articol de mai jos pentru a vedea articolele în baza de cunoștințe Microsoft:
311284 cum să: gestiona evenimente Document într-o aplicație de Visual Basic .NET
Ghid 259963 : obține lățimea și înălțimea furnizate Window.open interiorul gazda WebBrowser Visual C++Pentru mai multe informații despre controlului WebBrowser, precum și metodele, proprietățile și evenimentele care se expune, se referă la următorul site Web Microsoft:
WebBrowser Control: Referință pentru dezvoltatori Visual Basichttp://msdn2.microsoft.com/en-us/library/Aa752043.aspxPentru mai multe informații despre dezvoltarea Web-based soluții pentru Microsoft Internet Explorer, vizitați următorul site Web Microsoft:
http://msdn.microsoft.com/ie/ http://support.microsoft.com/iep