INHALT
Zusammenfassung
Visual Basic .NET Applications, die das WebBrowser-Steuerelement hosten können das window.open Aufruf abzufangen, der von einem Skript generiert NewWindow2 -Ereignis behandeln. Allerdings ist es nicht offensichtlich wie die Anwendung die Werte für Breite und Höhe erhalten, die Features des window.open Arguments übergeben werden, damit im WebBrowser-Host die Fenstergröße ordnungsgemäß ändern kann. Dieser Artikel beschreibt, wie die neue Breite und Höhe des WebBrowser-Steuerelements abrufen und die Formulargröße entsprechend.
Voraussetzungen
Die folgende Liste führt die empfohlene Hardware, Software und Netzwerkinfrastruktur sowie die benötigten Service Packs auf:
-
Microsoft Visual Studio .NET
-
Microsoft Internet Explorer 5.5 Servicepack 2 oder höher
Erstellen des Beispiels
Dieser Abschnitt beschreibt wie das WebBrowser-Steuerelement in einer Visual Basic, wie NewWindow2 -Ereignis des WebBrowser-Steuerelements behandelt und Behandlung von WindowSetWidth und WindowSetHeight Ereignisse die Größe der Anwendung.
-
Erstellen Sie eine neue Windows-Anwendung in Visual Basic wie folgt:
-
Starten Sie Visual Studio .NET.
-
Klicken Sie im Menü Datei auf neu und klicken Sie dann auf Projekt.
-
Klicken Sie unter Projekttypenauf Visual Basic-Projekte. Klicken Sie unter Vorlagenauf Windows-Anwendung.
-
-
In der Toolbox auf Allgemein, klicken Sie in der Toolbox und klicken Sie dann auf Toolbox anpassen.
-
Kontrollkästchen Sie auf der Registerkarte COM-Komponenten das Microsoft Webbrowser und klicken Sie dann auf OK.
-
Doppelklicken Sie in der Toolbox im Explorer-Fenster.
-
Ein Schaltflächen -Steuerelement und einem TextBox -Steuerelement zum Formular hinzufügen.
-
Doppelklicken Sie auf die Schaltfläche, um die Implementierung der OnClick -Ereignis der Schaltfläche im Code-Fenster anzeigen, und fügen Sie den folgenden Code hinzu:
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click AxWebBrowser1.Navigate(TextBox1.Text) End Sub
Diesen Code können Sie zu der URL navigieren, die Sie in das Textfeld angeben.
-
Fügen Sie folgenden Code zum Schreiben der Handlerfunktion für 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
-
Fügen Sie folgenden Code zum Schreiben der Handlerfunktion für 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
-
Fügen Sie folgenden Code zum Schreiben der Handlerfunktion für 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
Vollständiges Codebeispiel
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
Funktionsüberprüfung
-
Erstellen Sie die Anwendung.
-
Öffnen Sie den Editor. Erstellen Sie eine neue Datei mit dem Namen Test.htm und fügen Sie den folgenden Code hinzu:
<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>
-
Speichern Sie Test.htm auf Ihrem Webserver.
-
Führen Sie die Anwendung.
-
Wechseln Sie zur Seite Test.htm und klicken Sie dann auf die Schaltfläche. Beachten Sie, dass Microsoft Corporate-Website in einer neuen Instanz der Anwendung geöffnet wird. Das Formular wird nach Funktionen Größe, die mit dem Aufruf von window.openübergeben.
Informationsquellen
Weitere Informationen finden Sie zu die Artikeln der Microsoft Knowledge Base:
311284 wie: Behandeln von Ereignissen in einer Visual Basic
259963 so wird's gemacht: erhalten Sie Breite und Höhe angegeben Window.open in Visual C++ WebBrowser-HostWeitere Informationen über das WebBrowser-Steuerelement sowie die Methoden die Eigenschaften und Ereignisse, die sie verfügbar macht, finden Sie auf der folgenden Microsoft-Website:
WebBrowser: Referenz für Visual Basic-Entwicklerhttp://msdn2.microsoft.com/en-us/library/Aa752043.aspxWeitere Informationen zum Entwickeln von Web-Lösungen für Microsoft Internet Explorer finden Sie auf folgenden Microsoft-Websites:
http://msdn.microsoft.com/ie/ http://support.microsoft.com/iep