Cara menggunakan kontrol browser web untuk membuka dokumen Office di Visual C# 2005 atau dalam Visual C#.NET

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 304662 - Melihat produk di mana artikel ini berlaku.
Untuk Microsoft Visual Basic.NET versi artikel ini, lihat 304643.
Perbesar semua | Perkecil semua

Pada Halaman ini

RINGKASAN

Anda mungkin ingin untuk menampilkan atau untuk menanamkan sebuah dokumen Microsoft Office langsung pada bentuk Microsoft Visual C#. Microsoft Visual C# 2005 dan Microsoft Visual C#.NET tidak memberikan OLE kontrol yang memungkinkan Anda untuk menanamkan dokumen Office pada formulir. Jika Anda ingin menanamkan dokumen yang ada dan membuka sebagai objek dokumen ActiveX di tempat dalam bentuk Visual C#, solusi potensial untuk Anda adalah untuk menggunakan kontrol browser Web Microsoft.

Artikel ini menunjukkan bagaimana untuk browse ke dokumen kantor yang ada dan bagaimana untuk menampilkannya dalam bentuk Visual C# dengan menggunakan kontrol browser web.

INFORMASI LEBIH LANJUT

ActiveX dokumen yang embeddable OLE objek yang berperilaku lebih seperti kontrol ActiveX daripada tradisional OLE objek. Tidak seperti objek tertanam tradisional, dokumen ActiveX yang tidak dirancang untuk menjadi objek yang terkandung dalam dokumen lebih besar. Sebaliknya, itu dianggap sendiri dokumen lengkap yang hanya sedang dilihat (seperti dengan Microsoft Internet Explorer) atau dikumpulkan ke sumber tunggal dengan dokumen-dokumen lainnya (seperti Microsoft Office Binder file). Dokumen ActiveX yang di-host di kontrol browser web selalu aktif; oleh karena itu, tidak seperti tradisional OLE tertanam objek, ada tidak masuk akal di tempat aktivasi.

Meskipun Visual C# 2005 dan Visual C#.NET tidak saat ini mendukung hosting ActiveX dokumen secara langsung, Anda dapat menggunakan kontrol browser web untuk tujuan ini. Kontrol browser web (Shdocvw.dll) adalah bagian dari Internet Explorer dan hanya dapat digunakan pada sistem yang memiliki terinstal Internet Explorer.

Menciptakan sebuah Visual C# aplikasi yang membuka dokumen Office

Untuk menciptakan sebuah Visual C# aplikasi yang membuka dokumen Office, ikuti langkah berikut:
  1. Membuat proyek baru aplikasi Windows di Visual C# 2005 atau dalam Visual C#.NET. Form1 dibuat secara default.

    Catatan Dalam Visual C# 2005, jika Anda tidak dapat menemukan SHDocVw.dll file atau AxSHDocVw.dll file, jalankan perintah berikut pada prompt perintah Visual Studio:
    aximp %WINDIR%\system32\shdocvw.dll
    Kemudian, membuat common language runtime proxy (SHDocVw.dll) dan Windows Forms proxy (AxSHDocVw.dll) untuk kontrol Microsoft Web Browser. Untuk menambah file DLL dalam Visual C# 2005, ikuti langkah berikut:
    1. Pada Project menu, klik Menambahkan referensi.
    2. Dalam Menambahkan referensi kotak dialog, klik People.
    3. Cari dan kemudian pilih AxSHDocVw.dll file dan SHDocVw.dll file.
    4. Untuk menambahkan proyek referensi untuk dua file, klik Oke.
  2. Pada Alat menu, klik Menyesuaikan ToolBox untuk membuka Menyesuaikan ToolBox kotak dialog. Pada COM komponen tab, menambahkan referensi ke Microsoft browser web. Klik Oke untuk menambahkan kontrol browser web untuk Windows Forms toolbox. Kontrol browser web muncul dengan teks Explorer dalam toolbox.

    Catatan Pada Visual Studio 2005, Anda tidak perlu lakukan langkah 2.
  3. Menggunakan toolbox, menambahkan kontrol browser web, OpenFileDialog pengendalian dan kontrol CommandButton Form1. Ini menambah AxWebBrowser1, OpenFileDialog1, dan Button1 variabel anggota Form1 kelas. Dalam Visual C# 2005, webBrowser1, openFileDialog1, dan button1 variabel anggota ditambahkan.
  4. Pada Form1, klik dua kali Button1. Ini menambah Button1_Click acara untuk Form1.
  5. Dalam jendela kode untuk Form1, tambahkan namespace berikut ke daftar:
    using System.Reflection;
    					
  6. Menentukan anggota pribadi di kelas Form1 sebagai berikut:
    private Object oDocument; 
  7. Pada akhir InitializeComponent metode kelas Form1, tambahkan kode berikut untuk menangani Form1_Load, Form1_Closed, dan axWebBrowser1_NavigateComplete2 peristiwa:
    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. Ganti kode berikut
    private void button1_Click(object sender, System.EventArgs e)
    {
    }
    					
    dengan:
    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() ); 
    }
    					
    CatatanAnda harus mengubah kode pada Visual Studio 2005. Secara default, Visual C# menambahkan salah satu bentuk proyek ketika Anda membuat proyek Windows Forms. Bentuk nama Form1. Dua file yang mewakili bentuk yang bernama Form1.cs dan Form1.designer.cs. Anda menulis kode dalam Form1.cs. Form1.designer.cs file adalah di mana Windows Forms Designer menulis kode sumber yang mengimplementasikan semua tindakan Anda dilakukan dengan menyeret dan menjatuhkan kontrol dari Toolbox.

    Untuk informasi lebih lanjut tentang Windows bentuk desainer Visual C# 2005, kunjungi berikut Microsoft Developer Network (MSDN) situs Web:
    http://msdn2.Microsoft.com/en-us/library/ms173077.aspx
  9. Tekan F5 untuk menjalankan projek. Ketika Anda mengklik People, the Terbuka kotak dialog akan ditampilkan dan Anda dapat browse ke dokumen Word, Excel lembar kerja atau presentasi PowerPoint. Pilih file, dan kemudian klik Terbuka. Dokumen membuka di dalam kontrol browser web, dan kotak pesan yang menampilkan nama server dokumen kantor muncul.

Apa yang harus dipertimbangkan ketika Anda menggunakan kontrol browser web

Anda harus mempertimbangkan berikut bila Anda menggunakan kontrol browser web:
  • Kontrol browser web menelusuri untuk dokumen asynchronously. Kapan Anda menelpon WebBrowser1.Navigate, panggilan kembali kontrol Visual C# aplikasi Anda sebelum dokumen telah benar-benar diambil. Jika Anda berencana untuk mengotomatisasi dokumen berisi, Anda perlu menggunakan NavigateComplete2 acara untuk diberitahu ketika dokumen selesai loading. Penggunaan Dokumen properti Browser web objek yang dilewatkan dalam untuk mendapatkan referensi ke objek dokumen kantor, yang, dalam kode sebelumnya, diatur ke oDocument.
  • Kontrol browser web tidak mendukung menu penggabungan.
  • Dalam Internet Explorer versi 5.0 dan kemudian, Anda dapat menampilkan berlabuh toolbar dengan menggunakan kode berikut:
     // 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);
    					
  • Ada beberapa masalah yang diketahui dengan memiliki lebih dari satu browser web kontrol dalam proyek dan dengan memiliki setiap kontrol yang sarat dengan tipe dokumen Office (itu adalah, semua dokumen Word atau semua lembar kerja Excel) yang sama. Microsoft menganjurkan bahwa Anda menggunakan hanya satu control untuk setiap proyek, dan browse ke dokumen satu pada satu waktu.

    Masalah yang paling umum adalah dengan Microsoft Office perintah bar, yang muncul penyandang cacat. Jika Anda memiliki dua WebBrowser kontrol bentuk yang sama, yang penuh dengan dokumen Word, dan jika Anda memiliki toolbar dengan menggunakan salah satu teknik sebelumnya, hanya satu set toolbar aktif dan bekerja dengan benar. Yang lain adalah dinonaktifkan dan tidak dapat digunakan.
  • Untuk menghapus kontrol browser web konten aktifnya, di Klik acara tombol perintah lain (atau di beberapa tempat lain sesuai kode Anda), browse ke halaman kosong default dengan menggunakan kode berikut:
       AxWebBrowser1.Navigate("about:blank");
    					

Apa yang harus dipertimbangkan ketika Anda menggunakan kontrol browser web bersama-sama dengan program Microsoft Office 2007

Secara default, program Office 2007 tidak membuka dokumen Office di Web browser. Perilaku ini juga mempengaruhi kontrol browser web. Kami merekomendasikan bahwa Anda menggunakan container dokumen ActiveX kustom bukan kontrol browser web ketika Anda mengembangkan aplikasi yang membuka dokumen Office 2007. Untuk informasi lebih lanjut tentang wadah adat ActiveX dokumen, klik nomor artikel di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
311765Visual C++ ActiveX kontrol untuk hosting dokumen Office dalam Visual Basic atau HTML
Ada aplikasi yang memerlukan kompatibilitas dengan kontrol browser web, Anda dapat mengubah registri untuk mengkonfigurasi Internet Explorer. Anda dapat menggunakan metode ini untuk mengkonfigurasi Internet Explorer untuk membuka dokumen Office 2007 di Web browser. Untuk informasi selengkapnya, klik nomor artikel berikut untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
927009Jendela baru akan terbuka bila Anda mencoba melihat dokumen program Microsoft Office 2007 di Windows Internet Explorer 7
Catatan Jika Anda memodifikasi registri dengan menggunakan metode yang disebutkan di dalam artikel Basis Pengetahuan Microsoft 927009, perubahan yang mempengaruhi kontrol browser web yang Anda gunakan dalam aplikasi. Perubahan juga mempengaruhi semua contoh dari Internet Explorer. Selain itu, metode ini mungkin tidak bekerja untuk setiap versi Microsoft Office Suite. Oleh karena itu, kami menyarankan agar Anda menggunakan metode ini hanya untuk kompatibilitas dengan aplikasi yang sudah ada.

REFERENSI

Untuk informasi lebih lanjut tentang menggunakan kontrol browser web, klik nomor artikel di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
304562Visual Studio 2005 dan Visual Studio.NET tidak memberikan OLE container kontrol untuk Windows Forms
243058 Cara menggunakan kontrol browser web untuk membuka dokumen Office
162719 Cara menggunakan kontrol browser web dari Visual Basic 5.0
202476 BUG: Tidak dapat mengedit dokumen Word mengendalikan OLE atau browser web
188271 Cara mencetak isi dari Web Browser kontrol dari BB
191692 Shdocvw.dll tidak termasuk dalam paket setup PDW
238313 Mengakses Internet Explorer Document Object Model dari Visual Basic
927009 Jendela baru akan terbuka bila Anda mencoba melihat dokumen program Microsoft Office 2007 di Windows Internet Explorer 7

Properti

ID Artikel: 304662 - Kajian Terakhir: 24 September 2011 - Revisi: 2.0
Berlaku bagi:
  • 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
  • Microsoft Word 2000
Kata kunci: 
kbactivedocs kbautomation kbhowto kbwebbrowser kbmt KB304662 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:304662

Berikan Masukan

 

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