Utilizzo del controllo WebBrowser per aprire un documento di Office in Visual Basic .NET

Traduzione articoli Traduzione articoli
Identificativo articolo: 304643 - Visualizza i prodotti a cui si riferisce l?articolo.
Questo articolo Ŕ stato precedentemente pubblicato con il codice di riferimento I304643
Per la versione di questo articolo relativa a Microsoft Visual C# .NET, vedere 304662.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

Potrebbe essere necessario visualizzare o incorporare un documento di Office direttamente in un form di Visual Basic .NET. A differenza delle versioni precedenti di Visual Basic, Visual Basic .NET non include un controllo OLE che consenta di incorporare un documento di Office in un form. Se si desidera incorporare un documento esistente e aprirlo sul posto come un oggetto documento ActiveX in un form di Visual Basic .NET, una possibile soluzione consiste nell'utilizzare il controllo Microsoft WebBrowser.

In questo articolo viene illustrato come cercare un documento di Office esistente e visualizzarlo in un form di Visual Basic .NET utilizzando il controllo WebBrowser.

Informazioni

I documenti ActiveX sono oggetti OLE incorporabili con un comportamento pi¨ simile ai controlli ActiveX che non ai tradizionali oggetti OLE. A differenza degli oggetti incorporati, un documento ActiveX non Ŕ stato progettato come oggetto contenibile in un documento pi¨ grande. ╚ invece considerato un documento completo a sÚ stante, che viene semplicemente visualizzato, ad esempio con Microsoft Internet Explorer, o incluso in un'unica risorsa insieme ad altri documenti, come ad esempio un file del Raccoglitore di Microsoft Office. Un documento ActiveX contenuto nel controllo WebBrowser Ŕ sempre attivo, quindi, a differenza dei tradizionali oggetti OLE incorporati, l'attivazione sul posto Ŕ inutile.

Anche se in Microsoft Visual Basic .NET non Ŕ attualmente supportato l'hosting diretto di documenti ActiveX, Ŕ possibile utilizzare il controllo WebBrowser a questo scopo. Il controllo WebBrowser (Shdocvw.dll) fa parte di Internet Explorer e pu˛ essere utilizzato solo nei sistemi in cui Ŕ installato Internet Explorer.

Creazione di un'applicazione di Visual Basic .NET per l'apertura di documenti di Office

Per creare un'applicazione di Visual Basic .NET che apra documenti di Office, attenersi alla seguente procedura:
  1. Creare un nuovo progetto Applicazione Windows in Visual Basic .NET. Per impostazione predefinita, viene creato il progetto Form1.
  2. Scegliere Personalizza Casella degli strumenti dal menu Strumenti per visualizzare la finestra di dialogo Personalizza Casella degli strumenti. Nella scheda Componenti COM aggiungere un riferimento a Microsoft Web Browser. Scegliere OK per aggiungere il controllo WebBrowser alla Casella degli strumenti Windows Form. Il controllo WebBrowser verrÓ visualizzato con il testo Explorer nella Casella degli strumenti.
  3. Tramite la Casella degli strumenti aggiungere un controllo WebBrowser, un controllo OpenFileDialog e un pulsante a Form1. Verranno aggiunte le variabili membro AxWebBrowser1, OpenFileDialog1 e Button1 alla classe Form1.
  4. Definire un membro privato nella classe Form1 come segue:
    Dim oDocument as Object
  5. Incollare il seguente codice nella classe Form1:
    Private Sub Button1_Click(ByVal sender As System.Object, _
       ByVal e As System.EventArgs) Handles Button1.Click
    
        Dim strFileName As String
    
        'Find the Office document.
        With OpenFileDialog1
            .FileName = ""
            .ShowDialog()
            strFileName = .FileName
        End With
    
        'If the user does not cancel, open the document.
        If strFileName.Length Then
            oDocument = Nothing
            AxWebBrowser1.Navigate(strFileName)
        End If
    
    End Sub
    
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As _
       System.EventArgs) Handles MyBase.Load
    
        Button1.Text = "Browse"
    
        With OpenFileDialog1
            .Filter = "Office Documents " & _
            "(*.doc, *.xls, *.ppt)|*.doc;*.xls;*.ppt"
            .FilterIndex = 1
        End With
    
    End Sub
    
    Private Sub Form1_Closing(ByVal sender As Object, ByVal e As _
       System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
    
        oDocument = Nothing
    
    End Sub
    
    Private Sub AxWebBrowser1_NavigateComplete2(ByVal sender As Object, _
       ByVal e As AxSHDocVw.DWebBrowserEvents2_NavigateComplete2Event) _
       Handles AxWebBrowser1.NavigateComplete2
    
        On Error Resume Next
    
        oDocument = e.pDisp.Document
    
        'Note: You can use the reference to the document object to
        '      automate the document server.
        MsgBox("File opened by: " & oDocument.Application.Name)
    
    End Sub
    					
  6. Premere F5 per eseguire il progetto. Scegliendo Sfoglia viene visualizzata la finestra di dialogo Apri tramite la quale Ŕ possibile passare a un file di Word, Excel o PowerPoint. Selezionare un file, quindi scegliere Apri. Il documento viene aperto nel controllo WebBrowser e in una finestra di messaggio viene visualizzato il nome del server con il documento di Office.

Considerazioni sull'utilizzo del controllo WebBrowser

Quando si utilizza il controllo WebBrowser tenere presente quanto segue:
  • Il controllo WebBrowser ricerca i documenti in modo asincrono. Quando si chiama WebBrowser1.Navigate, viene restituito il controllo all'applicazione di Visual Basic prima che il documento sia stato caricato completamente. Se si prevede di automatizzare il documento contenuto, Ŕ necessario utilizzare l'evento NavigateComplete2 per essere informati quando il documento Ŕ stato caricato completamente. Utilizzare la proprietÓ Document dell'oggetto WebBrowser passata per ottenere un riferimento all'oggetto documento di Office, che nel codice precedente Ŕ impostata su oDocument.
  • Il controllo WebBrowser non supporta l'unione di menu.
  • Prima di visualizzare un documento di Office, il controllo WebBrowser di solito nasconde le eventuali barre degli strumenti ancorate. ╚ possibile utilizzare l'automazione per visualizzare una barra degli strumenti mobile utilizzando un codice simile al seguente:
    With oDocument.Application.CommandBars("Standard")
       .Position = 4 '[msoBarFloating]
       .Visible = True
    End With
    					
    Le versioni pi¨ recenti di Internet Explorer (5.0 e successive) consentono inoltre di visualizzare le barre degli strumenti ancorate utilizzando il seguente codice:
    ' 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_HIDETOOLBARS, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER)
    					
  • Esistono numerosi problemi noti che si verificano se si utilizzano pi¨ controlli WebBrowser in un progetto e se ogni controllo viene caricato con lo stesso tipo di documento di Office, ovvero documenti di Word o fogli di calcolo di Excel. Si consiglia di utilizzare un solo controllo per progetto e cercare un documento alla volta.

    Il problema pi¨ comune riguarda le barre dei comandi di Office che appaiono disattivate. Se nello stesso form sono presenti due controlli WebBrowser entrambi caricati con documenti di Word e le barre degli strumenti sono visualizzate utilizzando una delle tecniche precedenti, sarÓ attivo e funzionerÓ correttamente solo un set di barre degli strumenti. L'altro sarÓ disattivato e non potrÓ essere utilizzato.
  • Per cancellare il contenuto corrente di WebBrowser, nell'evento Click di un altro pulsante di comando oppure in un altro punto appropriato del codice, passare alla pagina vuota predefinita utilizzando il seguente codice:
       AxWebBrowser1.Navigate("about:blank")
    					

Riferimenti

Per ulteriori informazioni sull'utilizzo del controllo WebBrowser, fare clic sui numeri degli articoli della Knowledge Base riportati di seguito:
304562 INFO: Visual Studio .NET non fornisce un controllo contenitore OLE per Win Forms
243058 Utilizzo del controllo WebBrowser per aprire un documento di Office
162719 Utilizzo del controllo WebBrowser da Visual Basic 5.0
202476 BUG: Impossibile modificare un documento di Word nel controllo OLE o WebBrowser
188271 Stampa del contenuto del controllo WebBrowser da VB
191692 PRB: Shdocvw.dll non Ŕ incluso nel pacchetto di installazione di PDW
238313 PRB: Accesso al modello a oggetti dei documenti di Internet Explorer da Visual Basic

ProprietÓ

Identificativo articolo: 304643 - Ultima modifica: martedý 23 gennaio 2007 - Revisione: 6.3
Le informazioni in questo articolo si applicano a
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Office PowerPoint 2003
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft PowerPoint 2000 Standard Edition
  • Microsoft Office Word 2003
  • Microsoft Word 2002 Standard Edition
  • Microsoft Word 2000 Standard Edition
Chiavi:á
kbactivedocs kbautomation kbhowto kbwebbrowser KB304643
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com