Как да: Вземете ширината и височината от window.open() в уеб браузър хост с помощта на Visual Basic .NET

В ТАЗИ ЗАДАЧА

Обобщена информация

Visual Basic .NET приложения, които хостват контрола WebBrowser може да обработва събитието NewWindow2 да window.open обаждане, генериран от скрипт. Обаче не е ясно как приложението може да получите ширината и височината на стойностите, които се предават към аргумента функции на window.open така че хост уеб браузър може да преоразмерите прозореца правилно. Тази статия показва как да получите нов ширината и височината на контрола WebBrowser и как да промените размера на формуляр по съответния начин.

Изисквания

Следният списък описва препоръчителните хардуер, софтуер, мрежова инфраструктура и сервизни пакети, които се нуждаете от:

  • Microsoft Visual Studio .NET

  • Microsoft Internet Explorer 5.5 Service Pack 2 или по-късно

Създаване на примерни

Този раздел описва как да хоствате контрола WebBrowser в приложение на Visual Basic .NET, как да се справят с NewWindow2 събитие на контрола WebBrowser и след това как да се справят с WindowSetWidth и WindowSetHeight събития Преоразмеряване на вашето приложение.

  1. Създаване на нов Windows приложение в Visual Basic както следва:

    1. Стартиране на Visual Studio .NET.

    2. В менюто файл посочете Създайи щракнете върху проекта.

    3. Под Типове проектищракнете върху Проекти на Visual Basic. Под шаблонищракнете върху Windows приложение.

  2. В кутията с инструменти щракнете върху Общищракнете с десния бутон в кутията с инструменти и изберете Персонализиране инструменти.

  3. В раздела COM компоненти Поставете отметка в квадратчето Microsoft уеб браузър и след това щракнете върху OK.

  4. В кутията с инструменти щракнете двукратно върху в прозорец на Explorer.

  5. Добавяне на бутон и контрола текстово поле във вашия формуляр.

  6. Щракнете двукратно върху бутона, за да видите изпълнението на събитието onClick на бутона в прозореца код и след това добавете следния код:

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

    Този код ви позволява да разглеждате на URL адреса, който сте посочили в текстовото поле.

  7. Добавете следния код манипулатор на функцията за 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. Добавете следния код манипулатор на функцията за 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. Добавете следния код манипулатор на функцията за 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

Пълен примерен код

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

Проверете дали работи

  1. Компилация на приложението.

  2. Отворете Notepad. Създайте нов файл с име Test.htm и добавете следния код:

    <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. Запишете Test.htm във вашия уеб сървър.

  4. Стартирайте приложението.

  5. Отидете на страницата Test.htm и след това щракнете върху бутона. Забележете, че корпоративен уеб сайта на Microsoft се отваря в нов екземпляр на приложението. Формулярът се преоразмерява според функциите, които се предават с покана да window.open.

Препратки

За допълнителна информация щракнете върху следните номера на статии в базата знания на Microsoft:

как да: обработка на събития на документ във Visual Basic .NET приложение

HOWTO: получите ширина и височина доставят Window.open вътрешната Visual C++ WebBrowser хостЗа повече информация относно контрола WebBrowser, както и методите свойствата и събития, които излага, се отнася към следния уеб сайт на Microsoft:

Управление на уеб браузър: Справка за разработчиците на Visual BasicЗа повече информация за разработване на уеб базирани решения за Microsoft Internet Explorer посетете следните уеб сайтове на Microsoft:

Нуждаете се от още помощ?

Разширете уменията си
Преглед на обучението
Получавайте първи новите функции
Присъединете се към Microsoft приобщени

Беше ли полезна тази информация?

Благодарим ви за обратната връзка!

Благодарим ви за вашата обратна връзка. Изглежда, че ще бъде полезно да ви свържем с един от нашите агенти по поддръжката на Office.

×