Ako používať ovládaním na otváranie dokumentov balíka Office, Visual C# 2005 alebo v Visual C#.NET

Preklady článku Preklady článku
ID článku: 304662 - Zobraziť produkty, ktorých sa tento článok týka.
Pre Microsoft Visual Basic.ČISTÁ verziu tohto článku, pozri 304643.
Rozbaliť všetko | Zbaliť všetko

Na tejto stránke

SUHRN

Možno budete chcieť zobraziť alebo vložiť dokument balíka Microsoft Office priamo vo formulári Microsoft Visual C#. Microsoft Visual C# 2005 a Microsoft Visual C#.NET neposkytujú ovládací prvok OLE, ktorý vám umožní vložiť dokumentu balíka Office vo formulári. Ak chcete vložiť existujúci dokument a potom ho otvoríte ako objekt na mieste ActiveX dokumentu vo forme Visual C#, možné riešenie pre vás je použitie Microsoft ovládaním.

Tento článok ukazuje ako prechádzať do existujúceho dokumentu balíka Office a ako zobraziť vo vnútri formulár Visual C# pomocou ovládaním.

DALSIE INFORMACIE

ActiveX dokumenty sú zapustitelný OLE objekty, ktoré budú správať skôr ako ovládacie prvky ActiveX ako tradičné objekty OLE. Na rozdiel od tradičných vložený objekt ActiveX dokument nie je určený byť obmedzeného objekt v dokumente väčší. Namiesto toho považuje sama o sebe celý dokument, že je iba zobrazené (napríklad s programom Microsoft Internet Explorer) alebo pozbiera do jediný zdroj s iné dokumenty (ako sú Microsoft Office Binder súbor). ActiveX dokument, ktorý je hostiteľom v ovládaním je vždy aktívne; na rozdiel od tradičných OLE vložené objekty, preto neexistuje žiadny zmysel v mieste aktivácie.

Hoci Program Visual C# 2005 a Visual C#.NET aktuálne nepodporujú hosťovaní ActiveX dokumenty priamo, ovládaním môžete použiť na tento účel. Ovládaním (Shdocvw.dll) je súčasťou programu Internet Explorer a môže použiť iba na systémy, ktoré majú nainštalovaný Internet Explorer.

Vytvoriť aplikácie Visual C#, ktoré otvorí dokumentov balíka Office

Ak chcete vytvoriť na Visual C# aplikácie, ktorá otvorí dokumentov balíka Office, postupujte nasledovne:
  1. Vytvoriť nový projekt Windows aplikácie Visual C# 2005 alebo v Visual C#.NET. Form1 sa vytvorí na základe predvoleného nastavenia.

    Poznámka V Visual C# 2005, ak nemôžete nájsť SHDocVw.dll súbor alebo súbor AxSHDocVw.dll, spustite nasledovný príkaz príkazového riadka Visual Studio:
    aximp %WINDIR%\system32\shdocvw.dll
    Potom vytvoriť spoločný jazyk runtime proxy (SHDocVw.dll) a Windows Forms proxy (AxSHDocVw.dll) pre ovládací prvok Microsoft webového prehľadávača. Ak chcete pridať súbory DLL v Visual C# 2005, postupujte nasledovne:
    1. Na Projekt ponuky, kliknite na tlačidlo Pridať odkaz.
    2. V Pridať odkaz dialógové okno, kliknite na tlačidlo Prehľadávať.
    3. Vyhľadajte a vyberte súbor AxSHDocVw.dll a SHDocVw.dll súbor.
    4. Pridať odkazy projektu pre tieto dva súbory, kliknite na ok.
  2. Na Nástroje ponuky, kliknite na tlačidlo Prispôsobiť ToolBox Ak chcete otvoriť Prispôsobiť ToolBox dialógové okno. Na Komponenty COM kartu, pridať odkaz na Microsoft WebBrowser. Kliknite na tlačidlo ok Ak chcete pridať ovládaním do panela s nástrojmi Formuláre systému Windows. Ovládaním sa zobrazí s textom Program Explorer na paneli s nástrojmi.

    Poznámka V Visual Studio 2005, nemáte na krok 2.
  3. Pomocou panela s nástrojmi, pridajte WebBrowser ovládací prvok, ovládací prvok OpenFileDialog a CommandButton kontroly na Form1. Toto dodáva AxWebBrowser1, OpenFileDialog1, a Button1 premenným člena na Form1 trieda. V Visual C# 2005, webBrowser1, openFileDialog1, a button1 premenným člena sa dopĺňajú.
  4. Na Form1, dvakrát kliknite na Button1. Toto dodáva Button1_Click udalostí na Form1.
  5. V okne kód pre Form1 do zoznamu pridať nasledujúcich názvov:
    using System.Reflection;
    					
  6. Definovať súkromné členských v triede Form1 takto:
    private Object oDocument; 
  7. Na konci InitializeComponent metóda triedy Form1, pridajte nasledujúci kód zvládnuť Form1_Load, Form1_Closed, a axWebBrowser1_NavigateComplete2 udalosti:
    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. Nahradiť nasledujúci 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ámkaMusíte zmeniť kód v Visual Studio 2005. V predvolenom nastavení Visual C# pridá jedna forma projektu pri vytváraní projektu formuláre systému Windows. Formulár je pomenovaný Form1. Dva súbory, ktoré predstavujú forme sú pomenované Form1.cs a Form1.designer.cs. Napíšete kód v Form1.cs. Súbor Form1.designer.cs je, ak Windows Forms Designer píše kód, ktorý vykoná všetky akcie ste vykonali pretiahnutím ovládacie prvky z panela s nástrojmi.

    Ďalšie informácie o Windows Forms Designer v Visual C# 2005, navštívte nasledujúce Microsoft Developer Network (MSDN) webovej lokality:
    http://msdn2.Microsoft.com/en-us/library/ms173077.aspx
  9. Stlačením klávesu F5 na spustenie projektu. Po kliknutí na tlačidlo Prehľadávať, Otvorené dialógové okno sa zobrazí a umožňuje prehľadávať dokumentu programu Word, hárku programu Excel alebo prezentáciu programu PowerPoint. Vyberte ľubovoľný súbor a potom kliknite na tlačidlo Otvorené. Dokument sa otvorí vo vnútri ovládaním a sa zobrazí hlásenie, ktoré zobrazuje názov servera dokumentu balíka Office.

Čo zvážiť, keď použijete ovládaním

Pri použití ovládaním, zvážte nasledovné:
  • Si ovládaním vyhľadá dokumenty asynchrónne. Keď zavoláte WebBrowser1.Navigate, hovor vráti do vašej aplikácie Visual C# pred dokument bol načítaný úplne. Ak máte v pláne na automatizovanie obmedzené dokumentu, musíte použiť NavigateComplete2 udalostí na upozornenie, keď sa dokument nezaradí nakládky. Použitie Dokument Vlastnosť WebBrowser objekt, ktorý prešli na získanie odkazu na objekt dokumentu balíka Office, ktorý v predchádzajúcom kódexe, je nastavený na oDocument.
  • Ovládaním nepodporuje ponuke zlučovanie.
  • V programe Internet Explorer verzia 5.0 a novším môžete zobraziť ukotvené nástrojové lišty pomocou nasledujúci 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 niekoľko známych problémov s majú viac ako jeden ovládaním webového projektu a majú každý ovládací prvok zaťaží rovnaký typ dokumentu balíka Office (to znamená, všetky dokumenty programu Word alebo všetky pracovné hárky programu Excel). Spoločnosť Microsoft odporúča používať len jeden ovládací prvok pre každý projekt a prejdite na jeden dokument v čase.

    Najčastejším problémom je s Microsoft Office príkaz bary, ktoré sa javia zdravotne postihnutých. Ak máte dve WebBrowser kontroly tej istej forme, ktoré sú naložené dokumenty programu Word a ak panely s nástrojmi sa zobrazí pomocou jedného z predchádzajúcich techniky, len jednu skupinu panelov s nástrojmi je aktívny a pracuje správne. Druhý je vypnutá a nie je možné použiť.
  • Zrušte ovládaním jeho aktuálny obsah, v Kliknite na tlačidlo udalosť iné príkazové tlačidlo (alebo niektoré iné vhodné miesto vo vašom kód), prejdite na prázdnu stránku predvolené pomocou nasledujúci kód:
       AxWebBrowser1.Navigate("about:blank");
    					

Čo zvážiť, keď použijete ovládaním spolu s programu balíka Microsoft Office 2007

V predvolenom nastavení balíka Office 2007 neotvárajte dokumentov balíka Office vo webovom prehľadávači. Toto správanie ovplyvňuje aj ovládaním. Sme odporúča použitie kontajnera vlastné ActiveX dokumentu namiesto s ovládaním keď vyvíjať aplikácie, ktoré otvoriť dokumenty balíka Office 2007. Viac informácií o vlastné ActiveX dokumentu kontajnerov, po kliknutí na nasledovné číslo článku databázy Microsoft Knowledge Base:
311765Vizuálne ovládací prvok ActiveX C++ pre hosťovanie dokumentov balíka Office v jazyku Visual Basic alebo HTML
Pre existujúce aplikácie, ktoré vyžadujú spätnú kompatibilitu s ovládaním, môžete upraviť databázu registry nakonfigurovanie programu Internet Explorer. Túto metódu môžete použiť na nakonfigurovanie programu Internet Explorer na otváranie dokumentov balíka Office 2007 vo webovom prehľadávači. Ďalšie informácie získate po kliknutí na nasledovné číslo článku databázy Microsoft Knowledge Base:
927009Otvorí nové okno pri pokuse zobraziť dokument programu Microsoft Office 2007 v programe Windows Internet Explorer 7
Poznámka Ak databázu registry upravíte pomocou metódy, ktorá je uvedená v článku Microsoft Knowledge Base 927009, zmeny ovplyvňujú ovládaním, ktoré používate v žiadosti. Zmeny ovplyvnili všetky inštancie programu Internet Explorer. Okrem toho táto metóda nemusí fungovať pre všetky budúce verzie balíkov Microsoft Office. Preto odporúčame používať túto metódu iba pre kompatibilitu s existujúcej žiadosti.

ODKAZY

Ďalšie informácie o používaní ovládaním po kliknutí na nasledovné číslo článku databázy Microsoft Knowledge Base:
304562Program Visual Studio 2005 a Visual Studio.NET neposkytujú ovládacieho prvku OLE kontajner pre formuláre systému Windows
243058 Ako používať ovládaním na otvorenie dokumentu balíka Office
162719 Ako používať ovládaním z Visual Basic 5.0
202476 Chyba: Nedá sa upraviť dokument Word ovládacieho prvku OLE alebo WebBrowser
188271 Ako vytlačiť obsah webového prehľadávača kontroly z VB
191692 Knižnica shdocvw.dll sa nezahrnie do PDW inštalačný balík
238313 Prístupe k Internet Explorer dokumentu objektový Model z jazyka Visual Basic
927009 Otvorí nové okno pri pokuse zobraziť dokument programu Microsoft Office 2007 v programe Windows Internet Explorer 7

Vlastnosti

ID článku: 304662 - Posledná kontrola: 31. októbra 2011 - Revízia: 2.0
Informácie v tomto článku sa týkajú nasledujúcich produktov:
  • 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
Kľúčové slová: 
kbactivedocs kbautomation kbhowto kbwebbrowser kbmt KB304662 KbMtsk
Strojovo preložené
DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.
Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem:304662

Odošlite odozvu

 

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