Comment : Obtenir largeur et hauteur Window.Open () à l’intérieur d’un hôte WebBrowser à l’aide de Visual Basic .NET

DANS CETTE TÂCHE

Résumé

Les applications Visual Basic .NET qui héberge le contrôle WebBrowser peuvent gérer l’événement NewWindow2 pour intercepter un appel window.open qui est généré par le script. Toutefois, il n’est pas immédiatement évident de comment votre application peut obtenir les valeurs de largeur et de hauteur qui sont transmis à l’argument de fonctionnalités de window.open afin que l’hôte WebBrowser peut redimensionner la fenêtre correctement. Cet article explique comment faire pour obtenir les nouvelles largeur et la hauteur du contrôle WebBrowser et comment redimensionner votre formulaire en conséquence.

Configuration requise

La liste suivante indique le matériel, les logiciels, l’infrastructure réseau et les Service Packs recommandés dont vous avez besoin :

  • Microsoft Visual Studio .NET

  • Microsoft Internet Explorer 5.5 Service Pack 2 ou version ultérieure

Création de l’exemple

Cette section décrit comment héberger le contrôle WebBrowser dans une application Visual Basic .NET, comment gérer l’événement NewWindow2 du contrôle WebBrowser et comment gérer le WindowSetWidth et le WindowSetHeight des événements Redimensionnez votre application.

  1. Créez une nouvelle application Windows dans Visual Basic comme suit :

    1. Démarrez Visual Studio .NET.

    2. Dans le menu Fichier, pointez sur Nouveau, puis cliquez sur Projet.

    3. Sous Types de projets, cliquez sur Projets de Visual Basic. Sous modèles, cliquez sur Application Windows.

  2. Dans la boîte à outils, cliquez sur Général, avec le bouton droit dans la boîte à outils, puis cliquez sur Personnaliser la boîte à outils.

  3. Sous l’onglet Composants COM , activez la case à cocher de Navigateur Web Microsoft , puis cliquez sur OK.

  4. Dans la boîte à outils, double-cliquez dans la fenêtre de l’Explorateur.

  5. Ajoutez un contrôle Button et un contrôle TextBox à votre formulaire.

  6. Double-cliquez sur le bouton pour afficher la mise en oeuvre de l’événement onClick du bouton dans la fenêtre de Code et ajoutez le code suivant :

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

    Ce code vous permet d’accéder à l’URL que vous spécifiez dans la zone de texte.

  7. Ajoutez le code suivant pour écrire la fonction gestionnaire pour 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. Ajoutez le code suivant pour écrire la fonction gestionnaire pour 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. Ajoutez le code suivant pour écrire la fonction gestionnaire pour 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

Exemple de Code complet

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

Vérifiez que tout fonctionne

  1. Générez l’application.

  2. Ouvrez le bloc-notes. Créer un nouveau fichier nommé Test.htm et ajoutez le code suivant :

    <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. Enregistrer Test.htm sur votre serveur Web.

  4. Exécutez l’application.

  5. Accédez à la page Test.htm, puis cliquez sur le bouton. Notez que le site Web d’entreprise de Microsoft s’ouvre dans une nouvelle instance de l’application. Le formulaire est redimensionné en fonction des fonctionnalités que vous avez passées avec l’appel à window.open.

Références

Pour plus d’informations, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft :

311284 Comment : gérer des événements de Document dans une Application .NET de Visual Basic

259963 faire : obtenir la largeur et la hauteur fourni à Window.open intérieur l’hôte WebBrowser de Visual C++Pour plus d’informations sur le contrôle WebBrowser, ainsi que les méthodes, les propriétés et les événements qu’il expose, consultez sur le site Web de Microsoft à l’adresse suivante :

Contrôle de WebBrowser : Référence pour les développeurs Visual Basichttp://msdn2.microsoft.com/en-us/library/Aa752043.aspxPour plus d’informations sur le développement de solutions Web pour Microsoft Internet Explorer, visitez les sites Web de Microsoft à l’adresse suivante :

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

Besoin d’aide ?

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoindre Microsoft Insider

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×