Cum se: Obțineți lățimea și înălțimea din window.open() în interiorul unei gazde WebBrowser prin utilizarea Visual Basic .NET

Î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.

  1. Creați o nouă cerere de Windows în Visual Basic, după cum urmează:

    1. Porniți Visual Studio .NET.

    2. În meniul fișier , indicați spre nouși apoi faceți clic pe proiect.

    3. Sub Project Types, faceți clic pe Proiecte Visual Basic. Sub șabloane, faceți clic pe Aplicație Windows.

  2. Î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.

  3. În fila Componente COM , bifați caseta de selectare Browser-ul Web Microsoft și apoi faceți clic pe OK.

  4. În caseta de instrumente, faceți dublu clic în fereastra de Explorer.

  5. Adăugați un buton de control și un control casetă text la formular.

  6. 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.

  7. 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
  8. 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
  9. 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ă

  1. Compilarea aplicației.

  2. 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>
  3. Salvați Test.htm pe serverul Web.

  4. Executați aplicația.

  5. 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:

cum să: gestiona evenimente Document într-o aplicație de Visual Basic .NET

Ghid : 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 BasicPentru mai multe informații despre dezvoltarea Web-based soluții pentru Microsoft Internet Explorer, vizitați următorul site Web Microsoft:

Aveți nevoie de ajutor suplimentar?

Extindeți-vă competențele
Explorați instruirea
Fiți primul care obține noile caracteristici
Alăturați-vă la Microsoft Insider

V-a fost de ajutor această informație?

Vă mulțumim pentru feedback!

Vă mulțumim pentru feedback! Se pare că ar fi util să luați legătura cu unul dintre agenții noștri de asistență Office.

×