Het gebruik van het besturings element WebBrowser openen van Office-documenten in Visual c# 2005 of in Visual c#.NETTO

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 304662 - Bekijk de producten waarop dit artikel van toepassing is.
Voor een Microsoft Visual Basic.NETTO-versie van dit artikel, raadpleegt u304643.
Alles uitklappen | Alles samenvouwen

Op deze pagina

Samenvatting

U kunt weer geven of een Microsoft Office-document rechtstreeks op een formulier van Microsoft Visual c#. Microsoft Visual c# 2005 en Microsoft Visual c#.NET bieden een OLE-besturingselement waarmee u een Office-document in een formulier insluiten. Als u een bestaand document sluiten en openen als een in-place ActiveX-documentobject in een formulier Visual c#, is een mogelijke oplossing voor u met het besturings element Microsoft WebBrowser.

Dit artikel wordt beschreven hoe u naar een bestaand Offfice-document bladert en weer geven in een formulier Visual c# met behulp van het besturings element WebBrowser.

Meer informatie

ActiveX-documenten zijn insluitbare OLE-objecten gedragen zich meer als ActiveX-besturingselementen dan traditionele OLE-objecten. In tegenstelling tot een traditionele ingesloten object, ActiveX-document niet ontworpen om te worden opgenomen in een groter document. In plaats daarvan wordt geacht op zichzelf een volledig document dat alleen wordt weer gegeven (zoals Microsoft Internet Explorer) of worden verzameld in één bron met andere documenten (zoals een Microsoft Office Binder-bestand). ActiveX-document dat wordt gehost in het WebBrowser-besturingselement is altijd actief; in tegenstelling tot traditionele ingesloten OLE-objecten is er dus geen gevoel voor interne activering.

Hoewel Visual c# 2005 en Visual c#.NETTO momenteel ondersteunen geen hosting ActiveX-documenten rechtstreeks, kunt u het besturings element WebBrowser gebruiken voor dit doel. Het webbrowserbesturingselement (Shdocvw. dll) is een onderdeel van Internet Explorer en kan alleen worden gebruikt op systemen waarop Internet Explorer is geïnstalleerd.

Visual c#-toepassing maken waarmee openen Office-documenten

Een Visual c#-toepassing openen van Office-documenten wilt maken, gaat u als volgt te werk:
  1. Maak een nieuw Windows Application-project in Visual c# 2005 of in Visual c#.NET. Form1 wordt standaard gemaakt.

    OpmerkingIn Visual c# 2005 uitvoeren als u het bestand Shdocvw. dll of het bestand AxSHDocVw.dll niet vinden, de volgende opdracht bij de opdrachtprompt van Visual Studio:
    aximp %WINDIR%\system32\shdocvw.dll
    Maak vervolgens een proxy common language runtime (Shdocvw. dll) en een Windows Forms-proxy (AxSHDocVw.dll) voor het besturings element Microsoft Web-Browser. De dll-bestanden in Visual c# 2005 toevoegen, gaat u als volgt te werk:
    1. Op deProjectmenu, klikt u opVerwijzing toevoegen.
    2. In deVerwijzing toevoegenhet dialoog venster, klikt u opBladeren.
    3. Zoek en selecteer het bestand AxSHDocVw.dll en het bestand Shdocvw. dll.
    4. Projectverwijzingen voor deze twee bestanden toevoegen, klikt u opOK.
  2. Op deHulp programma'smenu, klikt u opWerkset aanpassenu opent deWerkset aanpassenhet dialoog venster. Op deCOM-componententab, voegt u een verwijzing naarMicrosoft-WebBrowser. Klik opOKhet besturings element WebBrowser toevoegen aan de werkset van Windows Forms. Het besturings element WebBrowser wordt weer gegeven met de tekstExplorerKlik in de werkset.

    OpmerkingIn Visual Studio 2005 hoeft u niet te stap 2.
  3. Voeg met behulp van de werkset, een WebBrowser-besturingselement, een OpenFileDialog controle en een CommandButton-besturingselement toe aan Form1. Hiermee voegt u aan deAxWebBrowser1,OpenFileDialog1, enButton1lid variabelen naar deFormulier1klasse. In Visual c# 2005, dewebBrowser1,openFileDialog1, enButton1lid variabelen worden toegevoegd.
  4. Dubbel klik op Form1,Button1. Hiermee voegt u aan deButton1_Clickgebeurtenis toe aan Form1.
  5. In het code venster voor Formulier1, moet u de volgende naam ruimte toevoegen aan de lijst:
    using System.Reflection;
    					
  6. Een persoonlijk lid in klasse definiërenFormulier1als volgt:
    private Object oDocument; 
  7. Aan het einde van deInitializeComponentmethode van klasseFormulier1, voeg de volgende code voor het verwerken van deForm1_Load,Form1_Closed, enaxWebBrowser1_NavigateComplete2gebeurtenissen:
    this.axWebBrowser1.NavigateComplete2 += new AxSHDocVw.DWebBrowserEvents2_NavigateComplete2EventHandler(this.axWebBrowser1_NavigateComplete2);
    this.Load += new System.EventHandler(this.Form1_Load);
    this.Closed += new System.EventHandler(this.Form1_Closed);
    					
  8. De volgende code vervangen
    private void button1_Click(object sender, System.EventArgs e)
    {
    }
    					
    met:
    private void button1_Click(object sender, System.EventArgs e)
    {
    
     String  strFileName;
    
     //Find the Office document.
     openFileDialog1.FileName = "";
     openFileDialog1.ShowDialog();
     strFileName = openFileDialog1.FileName;
    	        
     //If the user does not cancel, open the document.
     if(strFileName.Length != 0)
     {
      Object refmissing = System.Reflection.Missing.Value;
      oDocument = null;
      axWebBrowser1.Navigate(strFileName, ref refmissing , ref refmissing , ref refmissing , ref refmissing);
     }
    }
    
    public void Form1_Load(object sender, System.EventArgs e)
    {
     button1.Text = "Browse";
     openFileDialog1.Filter = "Office Documents(*.doc, *.xls, *.ppt)|*.doc;*.xls;*.ppt" ;
     openFileDialog1.FilterIndex = 1;
    }
    
    public void Form1_Closed(object sender, System.EventArgs e)
    {
     oDocument = null;
    }
    
    public void axWebBrowser1_NavigateComplete2(object sender, AxSHDocVw.DWebBrowserEvents2_NavigateComplete2Event e)
    {
    
     //Note: You can use the reference to the document object to 
     //      automate the document server.
    
     Object o = e.pDisp;
       
     oDocument = o.GetType().InvokeMember("Document",BindingFlags.GetProperty,null,o,null);
    			
     Object oApplication = o.GetType().InvokeMember("Application",BindingFlags.GetProperty,null,oDocument,null);
    
     Object oName = o.GetType().InvokeMember("Name",BindingFlags.GetProperty ,null,oApplication,null);
    
     MessageBox.Show("File opened by: " + oName.ToString() ); 
    }
    					
    OpmerkingU moet de code in Visual Studio 2005. Wordt standaard Visual c# één formulier toegevoegd aan het project wanneer u een Windows Forms-project maken. Het formulier wordt nu Form1. De twee bestanden waarmee het formulier namen Form1.cs en Form1.designer.cs. U schrijft de code in Form1.cs. Het bestand Form1.designer.cs is waar de Windows Forms Designer de code schrijft die alle acties implementeert u uitgevoerd door slepen en neerzetten van besturings elementen vanuit de werkset.

    Voor meer informatie over de Windows Forms Designer in Visual c# 2005, gaat u naar de volgende Microsoft Developer Network (MSDN)-website:
    http://msdn2.Microsoft.com/en-us/library/ms173077.aspx
  9. Druk op F5 om het project uitvoeren. Wanneer u klikt opBladeren, deOpenhet dialoog venster wordt weer gegeven en kunt u bladeren naar een Word-document, een Excel-werkblad of PowerPoint-presentatie. Selecteer een bestand en klik vervolgens opOpen. Het document wordt geopend in het besturings element WebBrowser en een berichtvenster waarin de naam van de server met Office-document weer gegeven.

Wat te overwegen wanneer u het besturings element WebBrowser gebruiken

Wanneer u het besturings element WebBrowser gebruikt, moet u het volgende overwegen:
  • Het besturings element WebBrowser bladert asynchroon naar documenten. Wanneer u beltWebBrowser1.Navigate, retourneert de aanroep besturings element om de Visual c#-toepassingvoordat uhet document is volledig geladen. Als u van plan het document opgenomen automatiseren bent, moet u gebruik van deNavigateComplete2de gebeurtenis wilt worden gewaarschuwd wanneer het document is geladen. Gebruik deDocumenteigenschap van deWebBrowserobject dat wordt doorgegeven in een verwijzing naar het Office document-object dat in de voorgaande code is ingesteld opoDocument.
  • Het besturings element WebBrowser biedt geen ondersteuning voor menu samenvoeging.
  • In Internet Explorer versie 5. 0 en hoger, kunt u gedokte werk balken weer geven door met de volgende code:
     // 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.
     
     Object refmissing = System.Reflection.Missing.Value;
     axWebBrowser1.ExecWB(SHDocVw.OLECMDID.OLECMDID_HIDETOOLBARS, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER,ref refmissing , ref refmissing);
    					
  • Er zijn diverse bekende problemen met meer dan één WebBrowser-besturingselement in een project hebben en dat elk besturings element geladen met hetzelfde type Office-document (dat wil zeggen alle Word-documenten of alle Excel-werkbladen). Microsoft raadt aan dat u slechts één besturings element voor elk project gebruiken en blader naar één document tegelijk.

    Het meest voorkomende probleem is met Microsoft Office opdrachtbalken uitgeschakeld worden weer gegeven. Als er twee WebBrowser-besturingselementen op hetzelfde formulier, die beide zijn geladen met Word-documenten, en als u werk balken weer geven met behulp van een van de voorgaande technieken, slechts één set werk balken actief is en correct werkt. De andere is uitgeschakeld en kan niet worden gebruikt.
  • Schakel het besturings element WebBrowser de huidige inhoud deKlik opgebeurtenis van een andere opdracht knop (of een andere geschikte plek in uw code), blader naar de standaard lege pagina met de volgende code:
       AxWebBrowser1.Navigate("about:blank");
    					

Wat te overwegen wanneer u het besturings element WebBrowser samen met een 2007 Microsoft Office-programma gebruikt

Standaard doet de 2007 Office-programma's geen Office-documenten openen in een webbrowser. Dit probleem heeft ook invloed op het besturings element WebBrowser. Het wordt afgeraden een aangepaste ActiveX-documentcontainer te gebruiken in plaats van het besturings element WebBrowser bij het ontwikkelen van toepassingen die de 2007 Office-documenten openen.Klik op het volgende artikelnummer in de Microsoft Knowledge Base voor meer informatie over aangepaste ActiveX-document containers:
311765Visual C++ ActiveX-besturingselement voor het hosten van Office-documenten in Visual Basic of HTML
Voor bestaande toepassingen waarvoor de compatibiliteit met het besturings element WebBrowser, kunt u het register zodanig configureren van Internet Explorer wijzigen. Met deze methode kunt u 2007 Office-documenten openen in de webbrowser Internet Explorer configureren.Voor meer informatie klikt u op het volgende artikelnummer in de Microsoft Knowledge Base:
927009Een nieuw venster geopend wanneer u probeert een 2007 Microsoft Office-programma document weer geven in Windows Internet Explorer 7
OpmerkingAls u het register wijzigen met behulp van de methode die wordt beschreven in Microsoft Knowledge Base-artikel 927009, de wijzigingen van invloed zijn op het besturings element WebBrowser die u in de toepassing gebruikt. De wijzigingen ook van invloed op alle exemplaren van Internet Explorer. Bovendien, deze methode werkt mogelijk niet voor alle toekomstige versies van de Microsoft Office-suites. Daarom raden wij gebruik deze methode alleen gebruiken voor compatibiliteit met bestaande toepassingen.

Referenties

Klik op de volgende artikel nummers in de Microsoft Knowledge Base voor meer informatie over het gebruik van het besturings element WebBrowser:
304562Visual Studio 2005 en Visual Studio.NET bieden niet een ActiveX-besturingselement voor Windows Forms
243058Het besturings element WebBrowser gebruiken om een Office-document openen
162719Het gebruik van het besturings element WebBrowser in Visual Basic 5. 0
202476BUG: Word-document in een OLE- of WebBrowser-besturingselement niet bewerken
188271Inhoud van het besturings element WebBrowser afdrukken vanuit Visual Basic
191692Shdocvw. dll is niet opgenomen in het installatiepakket van PDW
238313Het Document objectmodel van Internet Explorer openen vanuit Visual Basic
927009Een nieuw venster geopend wanneer u probeert een 2007 Microsoft Office-programma document weer geven in Windows Internet Explorer 7

Eigenschappen

Artikel ID: 304662 - Laatste beoordeling: maandag 28 februari 2011 - Wijziging: 2.0
De informatie in dit artikel is van toepassing op:
  • Microsoft Visual C# 2005
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Office Excel 2007
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Office PowerPoint 2007
  • Microsoft Office PowerPoint 2003
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft PowerPoint 2000 Standard Edition
  • Microsoft Office Word 2007
  • Microsoft Word 2002 Standard Edition
  • Microsoft Word 2000 Standard Edition
Trefwoorden: 
kbactivedocs kbautomation kbhowto kbwebbrowser kbmt KB304662 KbMtnl
Automatisch vertaald artikel
BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.
De Engelstalige versie van dit artikel is de volgende:304662

Geef ons feedback

 

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