Visual C# .NET veya Visual C# 2005'te Office belgelerini açmak için WebBrowser denetiminin nasıl kullanılır

Makale çevirileri Makale çevirileri
Makale numarası: 304662 - Bu makalenin geçerli olduğu ürünleri görün.
Bu makalenin Microsoft Visual Basic .NET sürümü için bkz: 304643.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Görüntülemek veya bir Microsoft Office belgesini doğrudan bir Microsoft Visual C# formundaki katıştırmak için isteyebilirsiniz. Microsoft Visual C# 2005 ve Microsoft Visual C# .NET, form üzerindeki bir Office belgesine katıştırmak izin veren bir OLE denetimi sağlar. Varolan bir belgeye katıştırma ve Visual C# formunda bir yerinde ActiveX belge nesnesi açmak istiyorsanız, olası bir çözüm için Microsoft WebBrowser denetimi kullanmaktır.

Bu makalede, varolan bir Office belgesine göz atmayı ve arabirimin WebBrowser denetimi kullanarak bir Visual C# form içinde görüntüleme gösterilmektedir.

Daha fazla bilgi

ActiveX belgeleri, daha geleneksel bir OLE nesneleri daha ActiveX denetimleri gibi davranmasına embeddable OLE nesneleri adı verilir. Geleneksel bir katıştırılmış nesne farklı olarak, bir ActiveX belge daha büyük bir belgenin içindeki bir nesne için tasarlanmamıştır. Bunun yerine, kendisi, yalnızca görüntülenen belgenin tamamını kabul (gibi ınternet Explorer'la) veya diğer belgeleri (örneğin, bir Microsoft Office Ciltçi dosyası) olan tek bir kaynak olarak toplanır. WebBrowser denetiminde barındırılan bir ActiveX belge her zaman etkindir; bu nedenle, Geleneksel katıştırılmış OLE nesnelerini farklı olarak, yok bir yerinde etkinleştirme duygusu.

Visual C# 2005 ve Visual C# .NET şu anda barındırma ActiveX belgeleri doğrudan desteklemez, ancak bu amaçla WebBrowser denetimi'ni kullanabilirsiniz. WebBrowser denetimini (Shdocvw.dll), ınternet Explorer'ın bir parçasıdır ve yalnızca ınternet Explorer yüklü olan sistemlerde kullanılabilir.

Visual C# uygulama oluşturmak için Office belgelerini açar

Office belgeleri açan bir Visual C# uygulama oluşturmak için aşağıdaki adımları izleyin:
  1. Visual C# 2005 veya Visual C# .NET, yeni bir Windows uygulaması) projesi oluşturun. Varsayılan olarak, Form1 oluşturulur.

    Not Visual C# 2005'te SHDocVw.dll dosyasını veya AxSHDocVw.dll dosyasını bulamazsanız, Visual Studio'nun komut isteminde aşağıdaki komutu çalıştırın:
    aximp %WINDIR%\system32\shdocvw.dll
    Sonra ortak dil çalışma zamanı proxy (SHDocVw.dll) ve Microsoft Web tarayıcısı denetimi için bir Windows Forms proxy (AxSHDocVw.dll) oluşturun. Visual C# 2005'te DLL dosyalarını eklemek için aşağıdaki adımları izleyin:
    1. Proje) menüsünde Add Reference ' ı tıklatın.
    2. Başvuru Ekle iletişim kutusunda, Gözat ' ı tıklatın.
    3. Bulup AxSHDocVw.dll dosyasını ve SHDocVw.dll dosyasını seçin.
    4. Proje başvurusu için bu iki dosyayı eklemek için Tamam ' ı tıklatın.
  2. Araçlar menüsünden Özelleştir ToolBoxToolBox Özelleştir iletişim kutusunu açmak için tıklatın. COM bileşenleri</a0> sekmesinde, Microsoft WebBrowser başvuru ekleyin. WebBrowser denetimi için Windows Forms araç eklemek için Tamam ' ı tıklatın. Araç kutusu içindeki metni Explorer WebBrowser denetiminin görüntülenir.

    Not Visual Studio 2005'te, adım 2 gerekmez.
  3. Araç kutusunu kullanarak, KomutDüğmesi denetim WebBrowser denetimi ve bir OpenFileDialog denetimi Form1'e ekleyin. Bu AxWebBrowser1OpenFileDialog1 ve Button1 üye değişkenlerine Form1 sınıfa ekler. Visual C# 2005'te webBrowser1openFileDialog1 ve button1 üye değişkenler eklenir.
  4. Form1'üzerinde Button1 çift tıklatın. Bu Button1_Click</a1> olay Form1'e ekler.
  5. Form1 kod penceresinde, ad alanını aşağıdaki listeye ekleyin:
    using System.Reflection;
    					
  6. Özel üye class Form1 gibi tanımlayın:
    private Object oDocument; 
  7. <a1>Sınıf</a1> Form1 ', ınitializecomponent yöntemini sonunda Form1_LoadForm1_Closed ve axWebBrowser1_NavigateComplete2 olayları işlemek için aşağıdaki kodu ekleyin:
    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. Aşağıdaki
    private void button1_Click(object sender, System.EventArgs e)
    {
    }
    					
    ile kod Değiştir:
    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() ); 
    }
    					
    Not Visual Studio 2005'te kodunu değiştirmeniz gerekir. Windows Forms bir proje oluşturduğunuzda, varsayılan olarak, Visual C# bir form projeye ekler. Form1 form olarak adlandırılır. Form temsil eden iki dosya Form1.cs ve Form1.designer.cs olarak adlandırılır. Kodu, Form1.cs içinde yazın. Form1.designer.cs denetimleri araç Kutusu'ndan bırakarak gerçekleştirilen tüm eylemleri uygulayan kodu burada Windows Form Designer yazar dosyadır.

    Daha fazla bilgi için Visual C# 2005 Windows Form tasarımcısında, ziyaret edin, aşağıdaki Microsoft Developer Network (MSDN) Web sitesi:
    http://msdn2.microsoft.com/en-us/library/ms173077.aspx
  9. F5 tuşuna basarak projeyi çalıştırın. Gözat ' ı tıklatın, iletişim kutusu görüntülenir ve, bir Word belgesi, Excel çalışma sayfası veya PowerPoint sunusuna gözatmanıza olanak tanır. Herhangi bir dosya seçin ve ' ı tıklatın. WebBrowser denetimi içinde belge açılır ve Office belge sunucusunun adını gösteren bir ileti kutusu görünür.

WebBrowser denetimi kullanırken göz önüne alınması gerekenler

WebBrowser denetimi kullanırken aşağıdakileri gözönünde bulundurmalısınız:
  • WebBrowser denetimi için belgeleri, zaman uyumsuz olarak gözatar. WebBrowser1.Navigate ça??rd???n?zda, çağrı, Visual C# uygulama önce belge denetimi tümüyle dolu yapıldı döndürür. Içerdiği belge otomatikleştirme hakkında düşünüyorsanız, NavigateComplete2 olay belge yüklenmesini tamamladığında bildirimde bulunulmak üzere kullanmanız gerekebilir. Belge özelliğinin WebBrowser nesnesinin olan, önceki kod oDocument için Office belgesi nesnesine bir başvuru almak için geçirilen'nı kullanın.
  • WebBrowser denetimi menü birleştirme desteklemiyor.
  • ınternet Explorer sürüm 5.0 ve daha sonra aşağıdaki kodu kullanarak yerleşik araç çubuklarını görüntüleyebilirsiniz:
     // 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);
    					
  • Birden fazla WebBrowser denetimi bir projede olması ve her denetimi ile aynı tür Office belgesini (diğer bir deyişle, tüm Word belgeleri veya tüm Excel çalışma sayfaları) yüklü olan birkaç bilinen sorunlar vardır. Microsoft, her proje için yalnızca bir denetimi'ni kullanın ve bir kerede tek bir belgede göz önerir.

    Devre dışı bırakılmış olarak görüntülenen Microsoft Office komut çubuklarını ile en yaygın sorundur. Aynı form üzerindeki iki WebBrowser denetimi varsa, her ikisi de Word belgeleriyle yüklenir ve araç çubuklarını önceki tekniklerden birini kullanarak görüntülenen araç çubukları yalnızca bir alt kümesini etkin olduğu ve düzgün çalışır. Diğer devre dışı bırakılır ve kullanılamaz.
  • Geçerli içeriği, başka bir komut düğmesini tıklatarak olayının (veya bazı diğer uygun yere kodunuzu), WebBrowser denetimi temizlemek için aşağıdaki kodu kullanarak varsayılan boş sayfayı görüntüleyin:
       AxWebBrowser1.Navigate("about:blank");
    					

WebBrowser denetiminin bir 2007 Microsoft Office programı ile birlikte kullandığınızda, göz önüne alınması gerekenler

Varsayılan olarak, 2007 Office programlarının Web tarayıcısında Office belgelerini açmayın. Bu davranış, WebBrowser denetimi de etkiler. 2007 Office belgelerini açma uygulamaları geliştirirken, özel bir ActiveX belge kapsayıcısı yerine WebBrowser denetimi kullanmanızı öneririz. Özel ActiveX belge kapsayıcılar hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
311765Visual C++ ActiveX denetimi Office Visual Basic veya HTML belgelerinde barındırma
WebBrowser denetimi ile geriye dönük uyumluluk gerektiren varolan uygulamalar için ınternet Explorer'ı yapılandırmak için kayıt defterini değiştirebilirsiniz. Bu yöntemi, 2007 Office belgelerini Web tarayıcısında açmak için ınternet Explorer'ı yapılandırmak için kullanabilirsiniz. Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
927009Windows ınternet Explorer 7'de 2007 Microsoft Office programı belge görüntülemeye çalıştığınızda, yeni BIR pencere açar
Not 927009 Microsoft Knowledge Base makalesinde açıklanan yöntemi kullanarak kayıt defterini değiştirirseniz, değişiklikler uygulamada kullandığınız WebBrowser denetimi etkiler. Değişiklikler, ınternet Explorer'ın tüm örneklerini de etkiler. Ayrıca, bu yöntem, tüm Microsoft Office paketlerinden gelecek sürümleri için çalışmayabilir. Bu nedenle, yalnızca varolan bir uygulamayla uyumluluk için bu yöntemi kullanmanız önerilir.

Referanslar

WebBrowser denetimi kullanma konusunda daha fazla bilgi için Microsoft Knowledge Base'deki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın:
304562Visual Studio 2005 ve Visual Studio. NET'in Windows formları için bir kapsayıcı denetimi sağlamaz
243058Bir Office belgesini açmaya WebBrowser denetiminin nasıl kullanılır
162719Visual Basic 5.0 ile gelen WebBrowser denetiminin nasıl kullanılır?
202476Hata: Word belgesine OLE veya WebBrowser denetimi düzenleme (Bu bağlantı, bir kısmı veya tamamı ingilizce olan içeriğe işaret edebilir.
188271Nasıl yapılır: VB Web tarayıcısı denetiminin içeriğini Yazdır
191692Shdocvw.dll PDW kurulum paketine dahil
238313ınternet Explorer belge nesne modeli Visual Basic'den erişme
927009Windows ınternet Explorer 7'de 2007 Microsoft Office programı belge görüntülemeye çalıştığınızda, yeni BIR pencere açar

Özellikler

Makale numarası: 304662 - Last Review: 14 Eylül 2007 Cuma - Gözden geçirme: 9.1
Bu makaledeki bilginin uygulandığı durum:
  • 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
Anahtar Kelimeler: 
kbmt kbactivedocs kbautomation kbhowto kbwebbrowser KB304662 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:304662

Geri Bildirim Ver

 

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