V TOMTO ÚKOLU

Shrnutí

Aplikace Visual Basic .NET, které jsou hostiteli ovládacího prvku WebBrowser lze zpracovávat události NewWindow2 zachytit volání window.open , který je generovaný skript. Však není okamžitě zřejmé, jak získat hodnoty šířky a výšky, které jsou předány argument funkcewindow.open tak, aby hostitele WebBrowser správně velikost okna aplikace. Tento článek ukazuje, jak získat novou šířku a výšku ovládacího prvku WebBrowser a jak změnit velikost formuláře.

Požadavky

Následující seznam obsahuje doporučený hardware, software, síťovou infrastrukturu a požadované aktualizace Service Pack:

  • Microsoft Visual Studio .NET

  • Microsoft Internet Explorer 5.5 Service Pack 2 nebo novější

Vytvořit vzorek

Tato část popisuje, jak hostiteli ovládacího prvku WebBrowser v aplikaci Visual Basic .NET, jak zpracovat událost NewWindow2 ovládacího prvku WebBrowser a jak zpracovat WindowSetWidth a WindowSetHeight události Změna velikosti aplikace.

  1. Takto vytvořte novou aplikaci Windows jazyka Visual Basic:

    1. Spusťte aplikaci Visual Studio .NET.

    2. V nabídce soubor přejděte na příkaz Nový a klepněte na příkaz projekt.

    3. Ve skupinovém rámečku Typy projektůklepněte na tlačítko Projekty jazyka Visual Basic. Ve skupinovém rámečku šablonyklepněte na tlačítko Aplikace systému Windows.

  2. V panelu nástrojů klepněte na kartu Obecné, klepněte pravým tlačítkem myši v panelu nástrojů a potom klepněte na tlačítko Přizpůsobit panel nástrojů.

  3. Na kartě Součásti COM zaškrtněte políčko Microsoft webový prohlížeč a klepněte na tlačítko OK.

  4. V panelu nástrojů poklepejte v okně Průzkumníka.

  5. Do formuláře přidáte ovládací prvek tlačítka a ovládací prvek textové pole .

  6. Poklepejte na tlačítko Zobrazit implementace události onClick tlačítka v okně kódu a přidejte následující 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 vám umožní přejít na adresu URL, které zadáte do textového pole.

  7. Přidejte následující kód psát obslužné rutiny pro 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. Přidejte následující kód psát obslužné rutiny pro 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. Přidejte následující kód psát obslužné rutiny pro 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

Ukázkový kód dokončení

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

Ověřte, zda funguje

  1. Sestavte aplikaci.

  2. Spusťte program Poznámkový blok. Vytvořte nový soubor s názvem Test.htm a přidejte následující 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>
  3. Uložte Test.htm na serveru WWW.

  4. Spusťte aplikaci.

  5. Přejděte na stránku Test.htm a klepněte na tlačítko. Všimněte si, že Microsoft firemní web se otevře v nové instanci aplikace. Podle funkcí, které jsou předány volání window.openzměně velikosti formuláře.

Odkazy

Další informace získáte v následujících článcích znalostní báze společnosti Microsoft:

311284 jak: zpracování událostí v dokumentu v aplikaci Visual Basic .NET

259963 postupy: získat šířku a výšku poskytnut Window.open uvnitř Visual C++ WebBrowser hostiteleDalší informace o ovládacím prvku WebBrowser a metody vlastnosti a události, které poskytuje, naleznete na následujícím webu společnosti Microsoft:

Ovládací prvek WebBrowser: Reference pro vývojáře Visual Basichttp://msdn2.microsoft.com/en-us/library/Aa752043.aspxDalší informace o vytváření webových řešení pro aplikaci Microsoft Internet Explorer naleznete na následujících webech společnosti Microsoft:

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

Potřebujete další pomoc?

Rozšiřte své znalosti a dovednosti

Projít školení >

Získejte nové funkce jako první

Připojit se k programu Microsoft Insider >

Byly tyto informace užitečné?

Jak jste spokojeni s kvalitou jazyka?
Co ovlivnilo váš názor?

Děkujeme vám za zpětnou vazbu.

×