TRONG TÁC VỤ NÀY
Tóm tắt
Visual Basic .NET ứng dụng lưu trữ điều khiển WebBrowser có thể xử lý sự kiện NewWindow2 bắt cuộc gọi window.open được tạo bằng lệnh. Tuy nhiên, không rõ ràng ngay lập tức cách ứng dụng của bạn có thể lấy các giá trị chiều rộng và chiều cao được truyền qua góc tính năngwindow.open để lưu trữ WebBrowser có thể thay đổi kích thước cửa sổ chính xác. Bài viết này trình bày cách lấy mới chiều rộng và chiều cao của điều khiển WebBrowser và làm thế nào để thay đổi kích thước hình thức tương ứng.
Yêu cầu
Danh sách bên dưới đưa ra phần cứng, phần mềm, hạ tầng mạng và gói dịch vụ được khuyến nghị mà bạn cần:
-
Microsoft Visual Studio .NET
-
Microsoft Internet Explorer 5.5 gói dịch vụ 2 hoặc mới hơn
Tạo mẫu
Phần này mô tả làm thế nào để lưu trữ điều khiển WebBrowser trong ứng dụng Visual Basic .NET, cách xử lý sự kiện NewWindow2 điều khiển WebBrowser, và sau đó làm thế nào để xử lý WindowSetWidth và các sự kiện WindowSetHeight thay đổi kích cỡ ứng dụng của bạn.
-
Tạo một ứng dụng Windows mới trong Visual Basic như sau:
-
Bắt đầu Visual Studio .NET.
-
Trên menu tệp , điểm đến mới, và sau đó bấm dự án.
-
Trong Các loại dự án, nhấp vào Visual Basic dự án. Trong mẫu, bấm vào Ứng dụng.
-
-
Trong hộp công cụ, bấm chung, bấm chuột phải vào hộp công cụ và sau đó nhấp vào Công cụ Tuỳ chỉnh.
-
Trên tab Cấu phần COM , chọn hộp kiểm Duyệt Web của Microsoft , và sau đó bấm OK.
-
Trong hộp công cụ, bấm đúp vào cửa sổ Explorer.
-
Thêm một nút điều khiển và điều khiển hộp cho mẫu.
-
Bấm đúp vào nút để xem việc thực hiện các sự kiện onClick nút trong cửa sổ mã, và sau đó thêm mã sau đây:
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click AxWebBrowser1.Navigate(TextBox1.Text) End Sub
Mã này cho phép bạn duyệt đến URL mà bạn chỉ định trong hộp văn bản.
-
Thêm mã sau đây để viết các chức năng xử lý cho 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
-
Thêm mã sau đây để viết các chức năng xử lý cho 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
-
Thêm mã sau đây để viết các chức năng xử lý cho 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
Hoàn thành mẫu mã
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
Xác minh rằng nó hoạt động
-
Xây dựng các ứng dụng.
-
Mở Notepad. Tạo một tệp mới có tên Test.htm, và sau đó thêm mã sau đây:
<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>
-
Lưu Test.htm trên máy chủ Web.
-
Chạy ứng dụng.
-
Duyệt trang Test.htm, và sau đó bấm vào nút. Xin lưu ý rằng công ty Web site của Microsoft sẽ mở trong phiên bản mới của ứng dụng. Dạng thay đổi kích thước theo các tính năng bạn thông qua với các cuộc gọi đến window.open.
Tham khảo
Để biết thêm thông tin, hãy bấm vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:
311284 làm thế nào để: xử lý sự kiện tài liệu trong ứng dụng Visual Basic .NET
259963 HOWTO: có chiều rộng và chiều cao cung cấp cho Window.open bên trong máy chủ WebBrowser Visual C++Để biết thêm chi tiết về điều khiển WebBrowser, phương pháp, thuộc tính, và các sự kiện này khiến tham khảo để Microsoft Web site sau của:
Điều khiển WebBrowser: Tham chiếu cho nhà phát triển Visual Basichttp://msdn2.microsoft.com/en-us/library/Aa752043.aspxĐể biết thêm thông tin về phát triển Web dựa trên giải pháp cho Microsoft Internet Explorer, hãy ghé thăm Web site sau của Microsoft:
http://msdn.microsoft.com/ie/ http://support.microsoft.com/iep