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.
-
Tworzenie nowej aplikacji systemu Windows w języku Visual Basic w następujący sposób:
-
Uruchom program Visual Studio .NET.
-
W menu plik wskaż polecenie Nowy, a następnie kliknij Projekt.
-
W obszarze Project Typeskliknij przycisk Projekty języka Visual Basic. W obszarze Szablonykliknij Aplikacji systemu Windows.
-
-
W przyborniku kliknij kartę Ogólne, kliknij prawym przyciskiem myszy w przyborniku, a następnie kliknij Customize Toolbox.
-
Na karcie Składniki modelu COM zaznacz pole wyboru Przeglądarka sieci Web firmy Microsoft , a następnie kliknij przycisk OK.
-
W przyborniku kliknij dwukrotnie w oknie Eksploratora.
-
Dodaj formant przycisku i formant pola tekstowego do formularza.
-
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.
-
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
-
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
-
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
-
Tworzenie aplikacji.
-
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>
-
Zapisz Test.htm na serwerze sieci Web.
-
Uruchom aplikację.
-
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