JAK: Pobieranie szerokości i wysokości od window.open() wewnątrz hosta WebBrowser za pomocą programu Visual Basic .NET

W TYM ZADANIU

Podsumowanie

Aplikacje programu Visual Basic .NET, obsługujące formant WebBrowser może obsłużyć zdarzenia Zdarzenianewwindow2 do połowu wywołania window.open , który jest generowany przez skrypt. Jednakże nie jest oczywiste jak aplikacji można uzyskać wartości Szerokość i wysokość, które są przekazywane do argumentu funkcjiwindow.open , tak aby WebBrowser host można zmienić rozmiar okna w prawidłowo. W tym artykule przedstawiono, jak uzyskać nową szerokość i wysokość formantu WebBrowser i jak zmienić odpowiednio rozmiar formularza.

Wymagania

Na następującej liście uwzględniono podstawowe składniki zalecanego i niezbędnego sprzętu, oprogramowania, infrastruktury sieciowej i dodatków Service Pack:

  • Program Microsoft Visual Studio .NET

  • Microsoft Internet Explorer 5.5 Service Pack 2 lub nowszy

Tworzenie próbki

W tej sekcji opisano, jak obsługiwać formantu WebBrowser w aplikacji Visual Basic .NET, sposób obsługi zdarzenia Zdarzenianewwindow2 formantu WebBrowser i sposób obsługi zdarzenia Zdarzeniawindowsetheight i WindowSetWidth Zmień rozmiar aplikacji.

  1. Tworzenie nowej aplikacji systemu Windows w języku Visual Basic w następujący sposób:

    1. Uruchom program Visual Studio .NET.

    2. W menu plik wskaż polecenie Nowy, a następnie kliknij Projekt.

    3. W obszarze Project Typeskliknij przycisk Projekty języka Visual Basic. W obszarze Szablonykliknij Aplikacji systemu Windows.

  2. W przyborniku kliknij kartę Ogólne, kliknij prawym przyciskiem myszy w przyborniku, a następnie kliknij Customize Toolbox.

  3. Na karcie Składniki modelu COM zaznacz pole wyboru Przeglądarka sieci Web firmy Microsoft , a następnie kliknij przycisk OK.

  4. W przyborniku kliknij dwukrotnie w oknie Eksploratora.

  5. Dodaj formant przycisku i formant pola tekstowego do formularza.

  6. Kliknij dwukrotnie przycisk, aby wyświetlić implementacji zdarzenia onClick przycisku w oknie kodu, a następnie dodaj następujący kod:

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

    Ten kod umożliwia przeglądanie do adresu URL określonego w polu tekstowym.

  7. Dodaj następujący kod, aby napisać funkcję obsługi dla Zdarzenianewwindow2:

        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. Dodaj następujący kod, aby napisać funkcję obsługi dla Zdarzeniawindowsetheight:

        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. Dodaj następujący kod, aby napisać funkcję obsługi dla 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

Pełny kod przykładowy

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

Sprawdź, czy działa

  1. Tworzenie aplikacji.

  2. Otwórz program Notatnik. Utwórz nowy plik o nazwie Test.htm, a następnie dodaj następujący kod:

    <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. Zapisz Test.htm na serwerze sieci Web.

  4. Uruchom aplikację.

  5. Przejdź na stronę Test.htm, a następnie kliknij przycisk. Należy zauważyć, że witryna sieci Web firmy Microsoft jest otwierany w nowe wystąpienie aplikacji. Według cech, które przeszły z wezwaniem do window.openrozmiarów formularza.

Informacje

Aby uzyskać dodatkowe informacje kliknij numery artykułów poniżej w celu wyświetlenia tych artykułów z bazy wiedzy Microsoft Knowledge Base:

311284 jak: obsłużyć zdarzenia dokumentu w aplikacji Visual Basic .NET

PORADNIKI 259963 : Uzyskaj szerokość i wysokość podana do Window.open wewnątrz hosta WebBrowser programu Visual C++Aby uzyskać więcej informacji o formancie WebBrowser, jak również metod właściwości i zdarzeń, które udostępnia go odnoszą się do następującej witryny firmy Microsoft w sieci Web:

Formantu WebBrowser: Odwołanie dla deweloperów Visual podstawowehttp://msdn2.microsoft.com/en-us/library/Aa752043.aspxAby uzyskać więcej informacji dotyczących projektowania rozwiązań opartych na sieci Web dla programu Microsoft Internet Explorer odwiedź następujące witryny firmy Microsoft w sieci Web:

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

Potrzebna dalsza pomoc?

Rozwijaj swoje umiejętności
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów firmy Microsoft

Czy te informacje były pomocne?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×