Jak použít ovládací prvek WebBrowser k otevírání dokumentů sady Office v Visual C# 2005 nebo Visual C# .NET

Překlady článku Překlady článku
ID článku: 304662 - Produkty, které se vztahují k tomuto článku.
Microsoft Visual Basic .NET verzi tohoto článku naleznete 304643.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Můžete zobrazit nebo vložit dokument Microsoft Office přímo ve formuláři jazyka Microsoft Visual C#. Microsoft Visual C# 2005 a Microsoft Visual C# .NET neposkytují ovládací prvek OLE, který umožňuje vložit dokument Office na formuláři. Pokud chcete vložit existující dokument a otevřít jako objekt dokumentu ActiveX v místě ve formuláři Visual C# je potenciální řešení můžete použít ovládací prvek Microsoft WebBrowser.

Tento článek ukazuje, jak procházet existující dokument Office a jak zobrazit uvnitř formuláře Visual C# pomocí prvku WebBrowser.

Další informace

Dokumenty ActiveX jsou embeddable objekty OLE více chovají jako ovládací prvky ActiveX než tradiční objekty OLE. Na rozdíl od tradičních vložený objekt není navržena dokumentu ActiveX být objekt obsažených ve větší dokumentu. Místo toho je považována za v samotném úplný dokument, který je pouze zobrazit (například s aplikací Microsoft Internet Explorer) nebo právě shromážděny do prostředek s jinými dokumenty (například soubor pořadač Microsoft). Dokument ActiveX, který je umístěn v ovládacím prvku WebBrowser je vždy aktivní; tedy na rozdíl od tradičních objekty OLE vložený není žádný smysl aktivace na místě.

Ačkoli Visual C# .NET a Visual C# 2005 aktuálně nepodporují hostitelských Dokumenty ActiveX přímo, můžete pro tento účel použít ovládací prvek WebBrowser. Ovládací prvek WebBrowser (Shdocvw.dll) je součástí aplikace Internet Explorer a lze použít pouze v systémech, které máte nainstalován Internet Explorer.

Vytvoření aplikace Visual C# otevře dokumenty Office

Vytvoření aplikace Visual C#, která otevře dokumenty Office postupujte takto:
  1. Vytvořit nový projekt aplikace Windows v Visual C# 2005 nebo Visual C# .NET. Jako výchozí je vytvořen formulář Form1.

    Poznámka: V aplikaci Visual C# 2005 Pokud nemůžete najít SHDocVw.dll souboru nebo souboru AxSHDocVw.dll, spusťte následující příkaz příkazového řádku Visual Studio:
    aximp %WINDIR%\system32\shdocvw.dll
    Pak vytvořte společné proxy runtime jazyka (SHDocVw.dll) a pro ovládací prvek webového prohlížeče Microsoft proxy model Windows Forms (AxSHDocVw.dll) Přidat soubory DLL v Visual C# 2005, postupujte takto:
    1. V nabídce projekt klepněte na tlačítko Přidat odkaz.
    2. V dialogové okno Přidat odkaz klepněte na tlačítko Procházet.
    3. Vyhledejte a vyberte soubor AxSHDocVw.dll a soubor SHDocVw.dll.
    4. Přidat odkazy pro tyto dva soubory projektu, klepněte na tlačítko OK.
  2. V nabídce Nástroje klepněte na tlačítko Upravit ToolBox otevřete dialogové okno Přizpůsobit ToolBox. Na kartě COM Components přidat odkaz Microsoft WebBrowser. Klepněte na tlačítko OK přidat ovládací prvek WebBrowser model Windows Forms soupravě nástrojů. Ovládací prvek WebBrowser zobrazí textem Explorer v soupravě nástrojů.

    Poznámka: V aplikaci Visual Studio 2005 nemáte ke kroku 2.
  3. Pomocí panelu Přidat ovládací prvek WebBrowser, ovládací prvek OpenFileDialog a řízení CommandButton Form1. Přidá AxWebBrowser1, OpenFileDialog1 a Button1 proměnné členů třídy Form1. V aplikaci Visual C# 2005 jsou přidány webBrowser1, openFileDialog1 a button1 proměnné členů.
  4. Na Form1 poklepejte na Button1. Přidá události Button1_Click Form1.
  5. V okně kódu Form1 přidat následující oboru názvů do seznamu:
    using System.Reflection;
    					
  6. Definovat soukromý člen ve třídě Form1 následovně:
    private Object oDocument; 
  7. Na konci metoda InitializeComponent třídy Form1 přidejte následující kód zpracovávat události Form1_Load, Form1_Closed a axWebBrowser1_NavigateComplete2:
    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. Nahradit následující kód
    private void button1_Click(object sender, System.EventArgs e)
    {
    }
    					
    s:
    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() ); 
    }
    					
    Poznámka je třeba změnit kód v aplikaci Visual Studio 2005. Ve výchozím nastavení Visual C# přidá jeden formulář projektu při vytvoření projektu model Windows Forms. Formulář je pojmenován Form1. Dva soubory, které představují formuláře jsou pojmenovány Form1.cs a Form1.designer.cs. Zapisovat kód v Form1.cs. Kde Návrhář model Windows Forms zapíše kód, který implementuje všechny akce provedena přetažením ovládací prvky z panelu je soubor Form1.designer.cs.

    Další informace o model Windows Forms Designer v Visual C# 2005, navštivte následující Microsoft Developer Network (MSDN) webu:
    http://msdn2.microsoft.com/en-us/library/ms173077.aspx
  9. Stisknutím klávesy F5 spustit projektu. Po klepnutí na tlačítko Procházet v dialogovém okně Otevřít se zobrazí a umožní procházet dokument Word, listu aplikace Excel nebo prezentaci PowerPoint. Vyberte libovolný soubor a klepněte na tlačítko Otevřít. Otevře se dokument uvnitř prvku WebBrowser a zobrazí se okno se zprávou, které se zobrazí název serveru dokumentů Office.

Co zvažte, kdy použít ovládací prvek WebBrowser

Při použití prvku WebBrowser byste měli vzít v úvahu následující skutečnosti:
  • Ovládací prvek WebBrowser přejde asynchronně dokumenty. Při volání WebBrowser1.navigate volání vrátí řízení vaší Visual C# aplikace před dokumentu byla zcela načten. Pokud plánujete automatizace obsažené dokumentu, musíte použít NavigateComplete2 události Pokud chcete být upozorňováni na dokončení načítání dokumentu. Vlastnost Document předaný Chcete-li získat odkaz na objekt dokumentu Office, který v předcházejícím kódu je nastaven na oDocument objektu WebBrowser.
  • Ovládací prvek WebBrowser nepodporuje slučování nabídce.
  • V aplikaci Internet Explorer verze 5.0 a vyšší, zobrazení ukotvených panelů nástrojů pomocí následující kód:
     // 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);
    					
  • Existuje několik známých problémů s více než jeden ovládací prvek WebBrowser nutnosti v projektu a nutnosti každý ovládací prvek načten stejný typ dokumentu Office (všechny dokumenty aplikace Word nebo všechny listy aplikace Excel). Společnost Microsoft doporučuje používat pouze jeden ovládací prvek pro každý projekt a přejděte do jednoho dokumentu najednou.

    Nejběžnější problém se s panely příkazů Microsoft Office, které se zobrazují zakázáno. Pokud máte dva ovládací prvky WebBrowser ve stejném formuláři, které jsou načteny s dokumenty Word a pokud zobrazení panelů nástrojů pomocí jedné z předchozích postupů pouze jednu sadu panelů nástrojů je aktivní a funguje správně. Druhý je zakázán a nelze použít.
  • Ovládací prvek WebBrowser její aktuální obsah v události Click příkazového tlačítka (nebo některé jiné příslušné místo v kódu) zrušte procházet výchozí prázdnou stránku, pomocí následující kód:
       AxWebBrowser1.Navigate("about:blank");
    					

Co zvažte, kdy použít ovládací prvek WebBrowser společně s sady Microsoft Office 2007

Ve výchozím programy systému Office 2007 Neotevírejte dokumenty Office v prohlížeči. Toto chování ovlivňuje také ovládací prvek WebBrowser. Doporučujeme použít vlastní dokument kontejneru ActiveX místo ovládacího prvku WebBrowser při vývoji aplikací otevřít dokumenty systému Office 2007. Další informace o vlastní kontejnery dokumentu ActiveX klepněte na následující číslo článku databáze Microsoft Knowledge Base:
311765Visual C++ ovládací prvek ActiveX pro hostování dokumentů sady Office v jazyka nebo HTML
Existující aplikace, které vyžadují zpětné kompatibility s ovládací prvek WebBrowser můžete upravit registru konfigurace aplikace Internet Explorer. Konfigurace aplikace Internet Explorer otevřít dokumenty systému Office 2007 v prohlížeči můžete použít tuto metodu. Další informace naleznete následujícím článku znalostní databáze Microsoft Knowledge Base:
927009Otevře nové okno při pokusu o zobrazení dokumentu programu Microsoft Office 2007 v aplikaci Internet Explorer 7
Poznámka: Upravit registr pomocí metody uvedené v článku znalostní báze Microsoft Knowledge Base 927009 změny se projeví ovládací prvek WebBrowser použijte v aplikaci. Změny se projeví také všechny instance aplikace Internet Explorer. Tato metoda navíc nemusí fungovat pro budoucí verze systému Microsoft Office 2007. Proto doporučujeme použít tuto metodu pro kompatibilitu s existující aplikací.

Odkazy

Další informace o použití ovládacího prvku WebBrowser klepněte na následující čísla následujících článcích databáze Microsoft Knowledge Base:
304562Visual Studio 2005 a Visual Studio .NET neposkytují ovládací prvek kontejner OLE pro model Windows Forms
243058Jak použít ovládací prvek WebBrowser k otevření dokumentu Office
162719Jak použít ovládací prvek WebBrowser z Visual Basic 5.0
202476Chyba: Nelze upravit dokument v ovládacím prvku OLE nebo WebBrowser
188271Jak vytisknout obsah ovládacího prvku webového prohlížeče z VB
191692Shdocvw.dll není součástí instalačního balíčku PDW
238313Internet Explorer Document Object Model přístup z jazyka
927009Otevře nové okno při pokusu o zobrazení dokumentu programu Microsoft Office 2007 v aplikaci Internet Explorer 7

Vlastnosti

ID článku: 304662 - Poslední aktualizace: 14. září 2007 - Revize: 9.1
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Visual C# 2005
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • 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 Office Word 2003
  • Microsoft Word 2002 Standard Edition
  • Microsoft Word 2000 Standard Edition
Klíčová slova: 
kbmt kbactivedocs kbautomation kbhowto kbwebbrowser KB304662 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:304662

Dejte nám zpětnou vazbu

 

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