Procedura: Ottenere la larghezza e altezza dal window.open() all'interno di un Host WebBrowser utilizzando Visual Basic .NET

CONTENUTO DELL'ATTIVITÀ

Riepilogo

Applicazioni di Visual Basic .NET che ospitano il controllo WebBrowser è possono gestire l'evento NewWindow2 per rilevare una chiamata a Window. Open generato dallo script. Tuttavia, è immediatamente evidente come l'applicazione può ottenere i valori di larghezza e altezza che vengono passati all'argomento della funzionalità di Window. Open , in modo che l'host WebBrowser è possibile ridimensionare la finestra correttamente. In questo articolo viene descritto come ottenere la nuova larghezza e l'altezza del controllo WebBrowser e come ridimensionare il form di conseguenza.

Requisiti

Nell'elenco che segue sono indicati l'hardware, il software, l'infrastruttura di rete e i Service Pack necessari.

  • Microsoft Visual Studio .NET

  • Microsoft Internet Explorer 5.5 Service Pack 2 o versione successiva

Creare il codice di esempio

In questa sezione viene illustrato come ospitare il controllo WebBrowser in un'applicazione Visual Basic .NET, come gestire l'evento NewWindow2 del controllo WebBrowser e come gestire la WindowSetWidth e gli eventi WindowSetHeight ridimensionare l'applicazione.

  1. Creare una nuova applicazione Windows in Visual Basic come segue:

    1. Avviare Visual Studio .NET.

    2. Dal menu File , scegliere Nuovo, quindi progetto.

    3. In Tipi progettoscegliere Progetti di Visual Basic. In modellifare clic su Applicazione Windows.

  2. Nella casella degli strumenti, fare clic su Generale, pulsante destro del mouse nella casella degli strumenti e quindi fare clic su Personalizza casella degli strumenti.

  3. Nella scheda Componenti COM , selezionare la casella di controllo Microsoft Web Browser e quindi fare clic su OK.

  4. Nella casella degli strumenti, fare doppio clic nella finestra Esplora.

  5. Aggiungere un controllo Button e un controllo TextBox al form.

  6. Fare doppio clic sul pulsante per visualizzare l'implementazione dell'evento onClick del pulsante nella finestra del codice e quindi aggiungere il codice seguente:

        Private Sub Button1_Click(ByVal sender As System.Object, _        ByVal e As System.EventArgs) Handles Button1.Click            AxWebBrowser1.Navigate(TextBox1.Text)    End Sub

    Questo codice consente di accedere all'URL specificato nella casella di testo.

  7. Aggiungere il seguente codice per scrivere la funzione del gestore per il 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. Aggiungere il seguente codice per scrivere la funzione del gestore per il 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. Aggiungere il seguente codice per scrivere la funzione del gestore per il 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

Esempio di codice completo

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

Verificare che funzioni

  1. Compilare l'applicazione.

  2. Aprire il blocco note. Creare un nuovo file denominato test. htm e quindi aggiungere il codice seguente:

    <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. Salvare test. htm sul server Web.

  4. Eseguire l'applicazione.

  5. Passare alla pagina di test. htm e quindi fare clic sul pulsante. Si noti che il sito Web aziendale Microsoft si apre in una nuova istanza dell'applicazione. Il form viene ridimensionato in base alle funzionalità che è stato passato con la chiamata a Window. Open.

Riferimenti

Per ulteriori informazioni, fare clic sui numeri per visualizzare gli articoli della Microsoft Knowledge Base riportato di seguito:

311284 procedura: gestire gli eventi di documento in un'applicazione di Visual Basic .NET

259963 HOWTO: ottenere la larghezza e altezza fornita all'interno di Window. Open Host WebBrowser di Visual C++Per ulteriori informazioni sul controllo WebBrowser, nonché i metodi, le proprietà e gli eventi esposti, consultare il seguente sito Web Microsoft:

Il controllo WebBrowser: Riferimento per sviluppatori Visual Basichttp://msdn2.microsoft.com/en-us/library/Aa752043.aspxPer ulteriori informazioni sullo sviluppo di soluzioni basate sul Web per Microsoft Internet Explorer, visitare i seguenti siti Web Microsoft:

http://msdn.microsoft.com/ie/ http://support.microsoft.com/iep

Serve aiuto?

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa a Microsoft Insider

Queste informazioni sono risultate utili?

Grazie per il feedback!

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×