Identificativo articolo: 311290 - Ultima modifica: domenica 13 maggio 2007 - Revisione: 4.1

Procedura: Ottenere larghezza e altezza da Window.Open () in un Host WebBrowser utilizzando Visual Basic .NET

Suggerimento di sistemaIl presente articolo fa riferimento a un sistema operativo diverso da quello in uso. Il contenuto dell'articolo che potrebbe non essere relativo al sistema in uso è disabilitato.

In questa pagina

Espandi tutto | Chiudi tutto

Sommario

Applicazioni Visual Basic .NET che host WebBrowser controllo possibile gestire il NewWindow2 evento per rilevare una chiamata window.open generati dallo script. Tuttavia, non è immediatamente evidente come l'applicazione ottenere i valori altezza e larghezza passati all'argomento di funzionalità di window.open in modo che l'host WebBrowser è possibile ridimensionare la finestra correttamente. In questo articolo viene illustrato come ottenere la nuova larghezza e l'altezza del Web browser controllo e come ridimensionare il form di conseguenza.

Requisiti

Nell'elenco seguente sono indicati hardware, software, infrastruttura di rete e i service pack è necessario:
  • Microsoft Visual Studio .NET
  • Microsoft Internet Explorer 5.5 Service Pack 2 o successivo

Creare l'esempio

In questa sezione viene descritto come host del controllo WebBrowser in un'applicazione Visual Basic.NET, come gestire l'evento NewWindow2 del controllo WebBrowser e come gestire il WindowSetWidth e gli eventi WindowSetHeight per ridimensionare l'applicazione.
  1. Creare una nuova applicazione Windows in Visual Basic come segue:
    1. Avviare Visual Studio NET..
    2. Scegliere Nuovo dal menu file , quindi progetto .
    3. In Tipi progetto fare clic su Progetti di Visual Basic . In modelli , fare clic su Applicazione Windows .
  2. Nella casella degli strumenti fare clic su Generale , fare clic con il pulsante destro del mouse nella casella degli strumenti e quindi scegliere 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 su Esplora finestra.
  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 riportato di seguito:
        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 passare all'URL specificato nella casella di testo.
  7. Aggiungere il seguente codice per scrivere la funzione del gestore per 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 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 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 Sub

End Class
				

Verifica del funzionamento

  1. Compilare l'applicazione.
  2. Aprire il blocco note. Creare un nuovo file denominato test.htm e quindi aggiungere il codice riportato di seguito:
    <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 test.htm e quindi fare clic su pulsante. Si noti che il sito Web aziendale Microsoft viene aperta in una nuova istanza dell'applicazione. Il form viene ridimensionato in base alle funzionalità che passato con la chiamata a window.open .

Riferimenti

Per ulteriori informazioni, fare clic sui numeri degli articoli della Microsoft Knowledge Base riportati di seguito:
311284  (http://support.microsoft.com/kb/311284/EN-US/ ) Procedura: Gestire eventi di documento in un'applicazione Visual Basic .NET
259963  (http://support.microsoft.com/kb/259963/EN-US/ ) HOWTO: Ottenere larghezza e altezza forniti per Window.Open all'interno dell'host WebBrowser di c ++ Visual
Per ulteriori informazioni su del controllo WebBrowser, nonché i metodi, le proprietà e gli eventi che espone, vedere il seguente sito Web Microsoft:
Controllo WebBrowser: Riferimento per sviluppatori Visual Basic
http://msdn2.microsoft.com/en-us/library/Aa752043.aspx (http://msdn2.microsoft.com/en-us/library/Aa752043.aspx)
Per ulteriori informazioni sullo sviluppo di soluzioni basate sul Web per Internet Explorer, visitare i seguenti siti Web (informazioni in lingua inglese):
http://msdn.microsoft.com/ie/ (http://msdn.microsoft.com/ie/)

http://support.microsoft.com/iep (http://support.microsoft.com/iep)

Le informazioni in questo articolo si applicano a:
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual Basic .NET 2003 Standard Edition
Chiavi: 
kbmt kbhowtomaster KB311290 KbMtit
Traduzione automatica articoliTraduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 311290  (http://support.microsoft.com/kb/311290/en-us/ )
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.