DALAM TUGAS INI
Ringkasan
Visual Basic .NET aplikasi yang menjadi tuan rumah kontrol WebBrowser dapat menangani peristiwa NewWindow2 untuk menangkap window.open panggilan yang dihasilkan oleh skrip. Namun, hal ini tidak segera jelas bagaimana aplikasi Anda dapat memperoleh dan lebar nilai yang disampaikan ke argumen fiturwindow.open sehingga WebBrowser host dapat mengubah ukuran jendela dengan benar. Artikel ini menunjukkan cara mendapatkan baru dan lebar kontrol WebBrowser dan cara mengubah ukuran formulir sesuai.
Persyaratan
Daftar berikut ini berisi peranti keras, peranti lunak, jaringan infrastruktur, dan paket layanan yang Anda butuhkan:
-
Microsoft Visual Studio .NET
-
Microsoft Internet Explorer 5.5 Paket Layanan 2 atau yang lebih baru
Membuat sampel
Bagian ini menjelaskan cara tuan rumah kontrol WebBrowser di aplikasi Visual Basic .NET, bagaimana cara menangani peristiwa NewWindow2 kontrol WebBrowser, dan kemudian bagaimana cara menangani WindowSetWidth dan peristiwa WindowSetHeight Resize aplikasi Anda.
-
Membuat aplikasi Windows yang baru dalam Visual Basic sebagai berikut:
-
Mulai Visual Studio .NET.
-
Pada menu File, arahkan ke Baru, kemudian klik Project.
-
Pada Jenis Proyek, klik Proyek Visual Basic. Pada pola dasar, klik Aplikasi Windows.
-
-
Pada toolbox, klik umum, klik kanan pada toolbox, dan kemudian klik Menyesuaikan Toolbox.
-
Pada tab Komponen COM , pilih kotak centang Microsoft Web Browser , dan kemudian klik OK.
-
Pada toolbox, klik dua kali pada jendela Explorer.
-
Tambahkan tombol kontrol dan kontrol teks ke bentuk.
-
Klik dua kali tombol untuk melihat implementasi onClick event tombol dalam jendela kode, dan kemudian tambahkan kode berikut ini:
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click AxWebBrowser1.Navigate(TextBox1.Text) End Sub
Kode ini memungkinkan Anda untuk menjelajah ke URL yang Anda tentukan di kotak teks.
-
Tambahkan kode berikut untuk menulis fungsi pengendali 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
-
Tambahkan kode berikut untuk menulis fungsi pengendali 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
-
Tambahkan kode berikut untuk menulis fungsi pengendali 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
Contoh kode lengkap
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
Memverifikasi bahwa bekerja
-
Membangun aplikasi.
-
Buka Notepad. Buat file baru yang bernama Test.htm, dan kemudian tambahkan kode berikut ini:
<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>
-
Simpan Test.htm pada server Web Anda.
-
Jalankan aplikasi.
-
Jelajahi Test.htm halaman, dan kemudian klik tombol. Perhatikan bahwa situs Web perusahaan Microsoft membuka di contoh baru dari aplikasi. Bentuk diubah ukurannya sesuai fitur yang disampaikan dengan panggilan untuk window.open.
Referensi
Untuk informasi tambahan, klik nomor artikel di bawah ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
311284 cara: menangani peristiwa dokumen dalam aplikasi Visual Basic .NET
259963 HOWTO: mendapatkan lebar dan tinggi disediakan untuk Window.open dalam Visual C++ penjelajah web HostUntuk informasi lebih lanjut tentang kontrol WebBrowser, serta metode, properti, dan peristiwa yang memperlihatkan, merujuk ke situs Web Microsoft berikut ini:
Kontrol WebBrowser: Referensi untuk Visual Basic pengembanghttp://msdn2.microsoft.com/en-us/library/Aa752043.aspxUntuk informasi lebih lanjut tentang mengembangkan solusi berbasis Web untuk Microsoft Internet Explorer, kunjungi situs Web Microsoft berikut:
http://msdn.microsoft.com/ie/ http://support.microsoft.com/iep