Iniciar sesión con Microsoft
Iniciar sesión o crear una cuenta
Hola:
Seleccione una cuenta diferente.
Tiene varias cuentas
Elija la cuenta con la que desea iniciar sesión.

EN ESTA TAREA

Resumen

Aplicaciones de Visual Basic .NET que alojan el control WebBrowser pueden controlar el evento NewWindow2 para detectar una llamada window.open generado por la secuencia de comandos. Sin embargo, no resulta inmediatamente obvio cómo su aplicación puede obtener los valores de ancho y alto que se pasan al argumento características de window.open para que el host de WebBrowser puede cambiar el tamaño de la ventana correctamente. En este artículo se muestra cómo obtener el nuevo ancho y el alto del control WebBrowser y cómo cambiar el tamaño del formulario según corresponda.

Requisitos

En la lista siguiente se describe el hardware, el software, la infraestructura de red y los Service Packs recomendados que necesitará:

  • Microsoft Visual Studio .NET

  • Microsoft Internet Explorer 5.5 Service Pack 2 o posterior

Crear el ejemplo

Esta sección describe cómo hospedar el control WebBrowser en una aplicación de Visual Basic .NET, cómo controlar el evento NewWindow2 del control WebBrowser y, a continuación, cómo controlar el WindowSetWidth y los eventos WindowSetHeight a cambiar el tamaño de la aplicación.

  1. Cree una nueva aplicación Windows en Visual Basic como sigue:

    1. Inicie Visual Studio. NET.

    2. En el menú archivo, elija nuevo y, a continuación, haga clic en proyecto.

    3. En Tipos de proyecto, elija Proyectos de Visual Basic. En plantillas, haga clic en Aplicación para Windows.

  2. En el cuadro de herramientas, haga clic en General, pulse el botón derecho en el cuadro de herramientas y, a continuación, haga clic en Personalizar cuadro de herramientas.

  3. En la ficha Componentes COM , seleccione la casilla de verificación Explorador Web de Microsoft y, a continuación, haga clic en Aceptar.

  4. En el cuadro de herramientas, haga doble clic en la ventana del explorador.

  5. Agregue un control Button y un control TextBox al formulario.

  6. Haga doble clic en el botón para ver la implementación del evento onClick del botón en la ventana de código y, a continuación, agregue el código siguiente:

        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 le permite navegar a la dirección URL que especifique en el cuadro de texto.

  7. Agregue el código siguiente para escribir la función de controlador de 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. Agregue el código siguiente para escribir la función de controlador 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. Agregue el código siguiente para escribir la función de controlador 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

Ejemplo de código completo

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

Comprobar que funciona

  1. Generar la aplicación.

  2. Abra el Bloc de notas. Cree un nuevo archivo denominado Test.htm y, a continuación, agregue el código siguiente:

    <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. Guardar Test.htm en el servidor Web.

  4. Ejecute la aplicación.

  5. Vaya a la página Test.htm y, a continuación, haga clic en el botón. Observe que el sitio Web corporativo de Microsoft se abre en una nueva instancia de la aplicación. El formulario cambia de tamaño según las características que pasan con la llamada a window.open.

Referencias

Para obtener información adicional, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:

311284 Cómo: controlar eventos de documento en una aplicación de Visual Basic .NET

259963 HOWTO: obtener el ancho y alto proporcionado a Window.open dentro del Host de WebBrowser de Visual C++Para obtener más información acerca del control WebBrowser, así como los métodos, las propiedades y los eventos que expone, consulte el siguiente sitio Web de Microsoft:

Control WebBrowser: Referencia para desarrolladores de Visual Basichttp://msdn2.microsoft.com/en-us/library/Aa752043.aspxPara obtener más información acerca de cómo desarrollar soluciones basadas en Web para Microsoft Internet Explorer, visite los siguientes sitios Web de Microsoft:

http://msdn.microsoft.com/ie/ http://support.microsoft.com/iep

¿Necesita más ayuda?

¿Quiere más opciones?

Explore las ventajas de las suscripciones, examine los cursos de aprendizaje, aprenda a proteger su dispositivo y mucho más.

Las comunidades le ayudan a formular y responder preguntas, enviar comentarios y leer a expertos con conocimientos extensos.

¿Le ha sido útil esta información?

¿Cuál es tu grado de satisfacción con la calidad del lenguaje?
¿Qué ha afectado a su experiencia?
Si presiona Enviar, sus comentarios se usarán para mejorar los productos y servicios de Microsoft. El administrador de TI podrá recopilar estos datos. Declaración de privacidad.

¡Gracias por sus comentarios!

×