Você está offline; aguardando reconexão

COMO: Obter largura e altura de Window.Open () dentro de um Host WebBrowser usando o Visual Basic .NET

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 311290
Para obter uma Microsoft Visual translation from VPE for Csharp .NET versão deste artigo, consulte 313966.

NESTA TAREFA

Sumário
Aplicativos do Visual Basic .NET que hospedam o WebBrowser controle pode manipular o evento NewWindow2 para capturar uma chamada de window.open gerada pelo script. No entanto, não é imediatamente óbvia como seu aplicativo pode obter os valores de largura e altura que são passados para o argumento de recursos do window.open para que o host WebBrowser pode redimensionar a janela corretamente. Este artigo demonstra como obter a nova largura e altura da WebBrowser controle e como redimensionar o formulário da mesma forma.

back to the top

Requisitos

A lista a seguir descreve o hardware recomendado, software, infra-estrutura de rede e service packs que você precisa:
  • Microsoft Visual Studio .NET
  • Microsoft Internet Explorer 5.5 Service Pack 2 ou posterior
back to the top

Criar o exemplo

Esta seção descreve como hospedar o controle WebBrowser em um aplicativo Visual Basic. NET, como manipular o evento NewWindow2 do controle WebBrowser e como lidar com WindowSetWidth e os eventos WindowSetHeight para redimensionar o seu aplicativo.
  1. Crie um novo aplicativo do Windows no Visual Basic da seguinte maneira:
    1. Inicie o Visual Studio NET..
    2. No menu arquivo , aponte para novo e, em seguida, clique em Project .
    3. Em Project Types , clique em Projetos do Visual Basic . Em modelos , clique em Windows Application .
  2. Na caixa de ferramentas, clique em Geral , clique com o botão direito do mouse na caixa de ferramentas e, em seguida, clique em Customize Toolbox .
  3. Na guia Componentes COM , marque a caixa de seleção Microsoft Web Browser e, em seguida, clique em OK .
  4. Na caixa de ferramentas, clique duas vezes no Gerenciador de janela.
  5. Adicione um controle Button e um controle TextBox ao formulário.
  6. Clique duas vezes no botão para exibir a implementação do evento onClick do botão na janela de código e em seguida, adicione o código a seguir:
        Private Sub Button1_Click(ByVal sender As System.Object, _        ByVal e As System.EventArgs) Handles Button1.Click            AxWebBrowser1.Navigate(TextBox1.Text)    End Sub						
    este código permite que você navegue até a URL que você especificar na caixa de texto.
  7. Adicione o seguinte código para gravar a função de manipulador para 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. Adicione o seguinte código para gravar a função de manipulador para 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. Adicione o seguinte código para gravar a função de manipulador para 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					
back to the top

Exemplo de código concluída

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				
back to the top

Verificar se ele funciona

  1. Crie o aplicativo.
  2. Abra o bloco de notas. Criar um novo arquivo chamado Test.htm e, em seguida, adicione o seguinte código:
    <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. Salve Test.htm em seu servidor Web.
  4. Execute o aplicativo.
  5. Navegue até a página Test.htm e, em seguida, clique no botão. Observe que o site do Microsoft corporativa é aberto em uma nova instância do aplicativo. O formulário é redimensionado acordo com para os recursos que você passou com a chamada para window.open .
back to the top
Referências
Para obter informações adicionais, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
311284COMO: Manipular eventos de documento em um aplicativo .NET do Visual Basic
259963COMO: Obter a largura e altura fornecidos para Window.Open interna host do Visual C++ WebBrowser
Para obter mais informações sobre o controle WebBrowser, bem como os métodos, as propriedades e os eventos que ele expõe, consulte o seguinte site da Microsoft:
Controle do WebBrowser: Referência para desenvolvedores de Visual Basic
http://msdn2.microsoft.com/en-us/library/Aa752043.aspx
Para obter mais informações sobre como desenvolver soluções baseadas na Web para o Microsoft Internet Explorer, visite os seguintes sites:back to the top
VB.NET

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 311290 - Última Revisão: 05/13/2007 01:17:14 - Revisão: 4.1

Microsoft Visual Basic .NET 2002 Standard Edition, Microsoft Visual Basic .NET 2003 Standard Edition

  • kbmt kbhowtomaster KB311290 KbMtpt
Comentários
ocument.getElementsByTagName("head")[0].appendChild(m);