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.
-
Creare una nuova applicazione Windows in Visual Basic come segue:
-
Avviare Visual Studio .NET.
-
Dal menu File , scegliere Nuovo, quindi progetto.
-
In Tipi progettoscegliere Progetti di Visual Basic. In modellifare clic su Applicazione Windows.
-
-
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.
-
Nella scheda Componenti COM , selezionare la casella di controllo Microsoft Web Browser e quindi fare clic su OK.
-
Nella casella degli strumenti, fare doppio clic nella finestra Esplora.
-
Aggiungere un controllo Button e un controllo TextBox al form.
-
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.
-
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
-
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
-
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
-
Compilare l'applicazione.
-
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>
-
Salvare test. htm sul server Web.
-
Eseguire l'applicazione.
-
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