Artikel-ID: 311290 - Geändert am: Sonntag, 13. Mai 2007 - Version: 4.1

Gewusst wie: Abrufen Breite und Höhe aus window.open() in einem WebBrowser-Host mithilfe von Visual Basic .NET

SystemtippDieser Artikel bezieht sich auf ein anderes Betriebssystem als das von Ihnen verwendete. Für Sie möglicherweise nicht relevante Artikelinhalte wurden deaktiviert.

Auf dieser Seite

Alles erweitern | Alles schließen

Zusammenfassung

Visual Basic .NET Anwendungen die Host die Webbrowser-Steuerelement kann behandeln Sie das NewWindow2 -Ereignis, einen Aufruf window.open catch, der durch Skript generiert wird. Es ist jedoch nicht sofort offensichtlich wie Ihre Anwendung die Höhe und Breite Werte erhalten kann, die an das Argument Features der window.open übergeben werden, sodass WebBrowser Host korrekt die Fenstergröße ändern kann. Dieser Artikel beschreibt die neue Breite und Höhe des dem WebBrowser-Steuerelement und die Formulargröße entsprechend.

Voraussetzungen

Die folgende Liste führt die empfohlene Hardware, Software, Netzwerkinfrastruktur und Servicepacks, die Sie benötigen:
  • Microsoft Visual Studio .NET
  • Microsoft Internet Explorer 5.5 mit Service Pack 2 oder höher

Erstellen des Beispiels

Diesem Abschnitt wird beschrieben, wie das Webbrowser-Steuerelement in einer Anwendung Visual Basic.NET Host, wie die NewWindow2 -Ereignis des WebBrowser-Steuerelements behandelt und wie WindowSetWidth und die WindowSetHeight Ereignisse, um die Größe Ihrer Anwendung ändern zu behandeln.
  1. Erstellen Sie eine neue Windows-Anwendung in Visual Basic wie folgt:
    1. Starten Sie Visual Studio .NET.
    2. Zeigen im Menü Datei auf neu , und klicken Sie dann auf Projekt .
    3. Klicken Sie unter Projekttypen auf Visual Basic-Projekte . Klicken Sie unter Vorlagen auf Windows-Anwendung .
  2. Klicken Sie in der Toolbox auf Allgemein , klicken Sie mit der rechten Maustaste auf die Toolbox und klicken Sie dann auf Toolbox anpassen .
  3. Kontrollkästchen Sie auf der Registerkarte COM-Komponenten das Microsoft Webbrowser , und klicken Sie dann auf OK .
  4. Doppelklicken Sie in der Toolbox in der Explorer-Fenster.
  5. Fügen Sie ein Button -Steuerelement und ein TextBox -Steuerelement dem Formular hinzu.
  6. Doppelklicken Sie auf die Schaltfläche, um die Implementierung von OnClick -Ereignis der Schaltfläche in das Codefenster anzuzeigen 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
    						
    dieser Code können Sie auf den URL zu durchsuchen, die Sie in das Textfeld angeben.
  7. 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
    					
  8. 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
    					
  9. 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 Sub

End Class
				

Funktionsprüfung

  1. Erstellen Sie die Anwendung.
  2. Öffnen Sie Editor. Erstellen Sie eine neue Datei mit dem Namen Test.htm, und fügen Sie folgenden Code:
    <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. Speichern Sie Test.htm auf Ihrem Webserver.
  4. Führen Sie die Anwendung aus.
  5. Wechseln Sie zu der Seite Test.htm, und dann klicken. Beachten Sie, dass die Microsoft Corporate-Website in eine neue Instanz der Anwendung geöffnet wird. Größenänderung des Formulars wird entsprechend zu den Features, die mit dem Aufruf von window.open übergeben.

Informationsquellen

Weitere Informationen finden Sie folgenden Artikel der Microsoft Knowledge Base:
311284  (http://support.microsoft.com/kb/311284/EN-US/ ) Gewusst wie: Behandeln von Dokument-Ereignissen in einer Visual Basic .NET-Anwendung
259963  (http://support.microsoft.com/kb/259963/EN-US/ ) So wird 's gemacht: Erhalten Breite und Höhe angegeben zu Window.open in des Visual C++-WebBrowser-Hosts
Weitere Informationen das Webbrowser-Steuerelement sowie die Methoden finden die Eigenschaften und Ereignisse, die es bereitstellt, zu der folgenden Microsoft-Website:
Webbrowser-Steuerelement: Reference for Visual Basic-Entwickler
http://msdn2.microsoft.com/en-us/library/Aa752043.aspx (http://msdn2.microsoft.com/en-us/library/Aa752043.aspx)
Finden Sie weitere Informationen zum Entwickeln von webbasierten Lösungen für Microsoft Internet Explorer auf der folgenden Microsoft-Websites:
http://msdn.microsoft.com/ie/ (http://msdn.microsoft.com/ie/)

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

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual Basic .NET 2003 Standard Edition
Keywords: 
kbmt kbhowtomaster KB311290 KbMtde
Maschinell übersetzter ArtikelMaschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 311290  (http://support.microsoft.com/kb/311290/en-us/ )
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.