V TEJTO ÚLOHE
Súhrn
Visual Basic .NET aplikácie, ktoré hosť ovládaním zvládne NewWindow2 udalosť zachytiť window.open hovor vygenerovaný skriptu. Však nie je okamžite jasné, ako získať aplikáciu šírka a výška hodnoty, ktoré argument funkciewindow.open tak, že hostiteľ WebBrowser môžete zmeniť veľkosť okna správne. Tento článok ukazuje získať novú šírku a výšku ovládaním a preto veľkosť formulára.
Požiadavky
Nasledujúci zoznam popisuje odporúčaný hardvér, softvér, sieťovej infraštruktúry a balíky service pack, ktoré potrebujete:
-
Microsoft Visual Studio .NET
-
Microsoft Internet Explorer 5.5 Service Pack 2 alebo novšia verzia
Vytvorenie vzorky
Táto časť popisuje ako hosť ovládaním v aplikácii Visual Basic .NET, ako používať ovládaním NewWindow2 udalosť a potom ako WindowSetWidth a WindowSetHeight udalosti veľkosť aplikácie.
-
Vytvoriť novú aplikáciu Windows Visual Basic takto:
-
Spustiť Visual Studio .NET.
-
V ponuke súbor ukážte na položku novéa kliknite na tlačidlo projekt.
-
Podľa Projekt typy, kliknite na tlačidlo Projektov programu Visual Basic. Podľa šablóny, kliknite na Aplikáciu.
-
-
Na paneli s nástrojmi, kliknite na položku Všeobecné, kliknite pravým tlačidlom myši na paneli s nástrojmi a kliknite na tlačidlo Prispôsobiť Toolbox.
-
Na karte Súčasti COMMicrosoft webový prehliadač políčko a kliknite na tlačidlo OK.
-
Na paneli s nástrojmi, dvakrát kliknite v okne Prieskumník.
-
Pridať tlačidlo kontroly a ovládací prvok textového poľa formulára.
-
Dvakrát kliknite na tlačidlo vykonávania onClick udalosť tlačidla v okne kód a pridajte nasledujúci kód:
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click AxWebBrowser1.Navigate(TextBox1.Text) End Sub
Tento kód môžete prejsť na adresu URL, ktoré zadáte do textového poľa.
-
Pridajte nasledovný kód NewWindow2napísať funkciu obslužný program:
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
-
Pridajte nasledovný kód napísať funkciu obslužný program 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
-
Pridajte nasledovný kód napísať funkciu obslužný program 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
Kompletný kód vzorky
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
Skontrolujte, či pracuje
-
Zostavte aplikáciu.
-
Otvorte program Poznámkový blok. Vytvorte nový súbor s názvom Test.htm, a potom pridajte nasledujúci kód:
<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>
-
Uložte Test.htm na webovom serveri.
-
Spustenie aplikácie.
-
Prejdite na stránku Test.htm, a potom kliknite na tlačidlo. Upozornenie, že podnikovej webovej lokality sa otvorí v novej inštancii aplikácie. Formulár je veľkosť podľa funkcie, ktorý sa odovzdáva s výzvou na window.open.
Odkazy
Ďalšie informácie získate po kliknutí na nasledovné číslo článku publikovaného v databáze Microsoft Knowledge Base:
311284 ako: dokument udalostí v aplikácii Visual Basic .NET
259963 HOWTO: Získajte šírka a výška dodávajú Window.open vnútri Visual C++ hostiteľ WebBrowserĎalšie informácie o ovládaním, metódy, vlastnosti a udalosti, ktoré sa zobrazuje, nájdete na webovej lokalite spoločnosti Microsoft:
Ovládaním: Odkaz pre vývojárov Visual Basichttp://msdn2.microsoft.com/en-us/library/Aa752043.aspxĎalšie informácie o vývoji webových riešení pre program Microsoft Internet Explorer, nájdete na nasledujúcich webových lokalitách spoločnosti Microsoft:
http://msdn.microsoft.com/ie/ http://support.microsoft.com/iep