Foros del Web » Programación para mayores de 30 ;) » .NET »

[SOLUCIONADO] WebBrowser a veces no funciona, vb 2008

Estas en el tema de WebBrowser a veces no funciona, vb 2008 en el foro de .NET en Foros del Web. Tengo un formulario que al pulsar un botón genera una serie de ficheros en excel y los abre en un nuevo formulario que contiene un ...
  #1 (permalink)  
Antiguo 01/10/2013, 02:58
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 20 años, 8 meses
Puntos: 0
WebBrowser a veces no funciona, vb 2008

Tengo un formulario que al pulsar un botón genera una serie de ficheros en excel y los abre en un nuevo formulario que contiene un TabControl (pestañas) y en cada pestaña añado un WebBrowser con el que abro cada fichero.

El caso es que algunas veces alguno de los ficheros no se ve, nunca me dá ningún error a pesar de que probé a controlar los errores con un try... catch:

Código PHP:
Private Sub FrmWebBrowser_Load(ByVal sender As ObjectByVal e As System.EventArgsHandles Me.Load

//Mostramos un excel por cada fecha distinta
For Each row As DataRow In SeleccionaDistintos(Ds.Tables("Datos"), "Fecha").Rows

Dim ExcelMio 
As New Excel.Application
Dim objLibroExcel 
As Excel.Workbook
Dim objHojaExcel 
As Excel.Worksheet
objLibroExcel 
ExcelMio.Workbooks.Add()

//No pongo el código que genera el excel ya que es extenso

 
Dim Ruta As String Application.StartupPath "\Temp\Recogidas_" row("Columna").ToString.Replace("/""-") & "_" Today.Date.ToShortDateString.Replace("/""") & Now.Hour Now.Minute Now.Millisecond ".xls"
                        
objLibroExcel.SaveCopyAs(Ruta)

objLibroExcel.Close(False)
objLibroExcel Nothing
//Cerramos el proceso
ExcelMio.Quit()
ExcelMio Nothing

If NumTabs 1 Then
       Me
.TabPage1.Text row("Columna")
       
Me.TabPage1.Tag Ruta
       Me
.WebBrowser1.Navigate(Ruta)
Else
       
//Añadimos una pestaña por cada listado
       
Dim Tab As New TabPage
       Tab
.Text row("Columna")
       
Tab.Tag Ruta

       Dim WB 
As New WebBrowser
       WB
.Dock Me.WebBrowser1.Dock
       WB
.Navigate(Ruta)
       
Tab.Controls.Add(WB)
       
Me.TabControl1.TabPages.Add(Tab)
End If

NumTabs += 1

next 
¿A alguien se le ocurre cómo hacer que el webbrower muestre SIEMPRE el excel?

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #2 (permalink)  
Antiguo 01/10/2013, 07:32
 
Fecha de Ingreso: enero-2012
Mensajes: 46
Antigüedad: 12 años, 3 meses
Puntos: 3
Respuesta: WebBrowser a veces no funciona, vb 2008

Bueno, ten en cuenta las siguientes consideraciones que Microsoft da para el uso del WebBrowser:

Debe tener en cuenta lo siguiente al utilizar el control WebBrowser:
El control WebBrowser examina los documentos de forma asincrónica. Cuando llama a WebBrowser1.Navigate, la llamada devuelve el control a la aplicación de Visual Basic antes de que el documento se haya cargado completamente. Si piensa utilizar Automatización en el documento contenido, tendrá que utilizar el evento NavigateComplete2 para que se le notifique cuándo se ha terminado de cargar el documento. Utilice la propiedad Document del objeto WebBrowser que se pasa para obtener una referencia del objeto de documento de Office, que en el código anterior está establecido como oDocument.
El control WebBrowser no permite la combinación de menús.
El control WebBrowser suele ocultar todas las barras de herramientas acopladas antes de mostrar un documento de Office. Puede utilizar Automatización para mostrar una barra de herramientas flotante con código como el que se muestra a continuación:
With oDocument.Application.CommandBars("Standard")
.Position = 4 '[msoBarFloating]
.Visible = True
End With

Las versiones más recientes de Internet Explorer (5.0 y posterior) también le permiten mostrar barras de herramientas acopladas con el código siguiente:
' This is a toggle option, so call it once to show the
' toolbars and once to hide them. This works with Internet Explorer 5
' but often fails to work properly with earlier versions...
AxWebBrowser1.ExecWB(SHDocVw.OLECMDID.OLECMDID_HID ETOOLBARS, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER )

Se conoce la existencia de algunos problemas derivados de tener más de un control WebBrowser en un proyecto y de tener cada control cargado con el mismo tipo de documento de Office (por ejemplo, documentos de Word u hojas de cálculo de Excel) Se recomienda utilizar sólo un control por cada proyecto y buscar sólo un documento cada vez.

El problema más común se produce con las barras de comandos de Office, que aparecen deshabilitadas. Si tiene dos controles WebBrowser en el mismo formulario, ambos cargados con documentos de Word, y desea mostrar las barras de herramientas con una de las técnicas anteriores, sólo estará activo y funcionará correctamente un conjunto de barras de herramientas. El otro estará deshabilitado y no se podrá utilizar.
Para borrar el contenido actual de WebBrowser, en el evento Click de otro botón de comando (o en algún otro lugar apropiado del código), busque la página en blanco predeterminada con el siguiente código:
AxWebBrowser1.Navigate("about:blank")

Referencia::
http://support.microsoft.com/kb/304643/es

Etiquetas: vb, veces, webbrowser
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:25.