Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

Làm thế nào để sử dụng điều khiển WebBrowser mở tài liệu văn phòng trong Visual C# 2005 hoặc trong Visual C#.NET

Hỗ trợ dành cho Office 2003 đã kết thúc

Microsoft đã kết thúc hỗ trợ dành cho Office 2003 vào ngày 8 tháng 4 năm 2014. Thay đổi này đã ảnh hưởng đến các bản cập nhật phần mềm và các tùy chọn bảo mật của bạn. Tìm hiểu ý nghĩa của điều này với bạn và cách thực hiện để luôn được bảo vệ.

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch máy của Microsoft chứ không phải do con người dịch. Microsoft cung cấp các bài viết do con người dịch và cả các bài viết do máy dịch để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng ngôn ngữ của bạn. Tuy nhiên, bài viết do máy dịch không phải lúc nào cũng hoàn hảo. Loại bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, giống như một người nước ngoài có thể mắc sai sót khi nói ngôn ngữ của bạn. Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra. Microsoft cũng thường xuyên cập nhật phần mềm dịch máy này.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này:304662
Đối với một Microsoft Visual Basic.NET Phiên bản của bài viết này, xem 304643.
TÓM TẮT
Bạn có thể muốn hiển thị hoặc nhúng một tài liệu Microsoft Office trực tiếp trên hình thức Microsoft Visual C#. Microsoft Visual C# 2005 và Microsoft Visual C#.NET cung cấp một điều khiển OLE cho phép bạn nhúng một tài liệu văn phòng trên một biểu mẫu. Nếu bạn muốn để nhúng một tài liệu hiện có và mở nó như một đối tượng tại chỗ ActiveX tài liệu dưới dạng Visual C#, một giải pháp tiềm năng cho bạn là để sử dụng điều khiển Microsoft WebBrowser.

Bài viết này chứng tỏ làm thế nào để duyệt đến một tài liệu văn phòng hiện có và làm thế nào để hiển thị nó bên trong hình thức Visual C# bằng cách sử dụng kiểm soát WebBrowser.
THÔNG TIN THÊM
Tài liệu ActiveX là các đối tượng nhúng OLE hành xử hơn như điều khiển ActiveX so với truyền thống OLE đối tượng. Không giống như một đối tượng nhúng truyền thống, một tài liệu ActiveX không được thiết kế để là một đối tượng chứa trong một tài liệu lớn hơn. Thay vào đó, nó được coi là riêng mình một tài liệu hoàn chỉnh mà chỉ đơn thuần là đang được xem (ví dụ như với Microsoft Internet Explorer) hoặc được thu thập thành một nguồn lực duy nhất với các tài liệu khác (chẳng hạn như một tập tin Microsoft Office Binder). Một tài liệu ActiveX được lưu trữ trong sự kiểm soát WebBrowser luôn luôn hoạt động; Vì vậy, không giống như các đối tượng nhúng OLE truyền thống, không có ý nghĩa tại chỗ kích hoạt.

Mặc dù Visual C# 2005 và Visual C#.NET hiện không hỗ trợ lưu trữ ActiveX tài liệu trực tiếp, bạn có thể sử dụng điều khiển WebBrowser cho mục đích này. Kiểm soát WebBrowser (Shdocvw.dll) là một phần của Internet Explorer và chỉ có thể được sử dụng trên hệ thống có Internet Explorer được cài đặt.

Tạo ứng dụng Visual C# mở tài liệu văn phòng

Để tạo một Visual C# đơn mở tài liệu văn phòng, hãy làm theo các bước sau:
  1. Tạo một dự án ứng dụng Windows mới trong Visual C# 2005 hoặc trong Visual C#.NET. Form1 được tạo ra theo mặc định.

    Lưu ý Visual C# 2005, nếu bạn không thể tìm thấy tệp SHDocVw.dll hoặc tập tin AxSHDocVw.dll, chạy lệnh sau tại dấu nhắc lệnh Visual Studio:
    aximp %WINDIR%\system32\shdocvw.dll
    Sau đó, tạo ra một ngôn ngữ phổ biến thời gian chạy proxy (SHDocVw.dll) và một Windows Forms proxy (AxSHDocVw.dll) cho điều khiển trình duyệt Web Microsoft. Để thêm các tập tin DLL trong Visual C# 2005, hãy làm theo các bước sau:
    1. Trên các Dự án trình đơn, nhấp vào Thêm tài liệu tham khảo.
    2. Trong các Thêm tài liệu tham khảo hộp thoại hộp, bấm vào Trình duyệt.
    3. Xác định vị trí và chọn tệp AxSHDocVw.dll và tệp SHDocVw.dll.
    4. Để thêm dự án tài liệu tham khảo cho hai tập tin, nhấp vào Ok.
  2. Trên các Công cụ trình đơn, nhấp vào Tuỳ chỉnh hộp công cụ để mở các Tuỳ chỉnh hộp công cụ hộp thoại. Trên các Các thành phần COM tab, thêm một tham chiếu đến Microsoft WebBrowser. Nhấp vào Ok thêm điều khiển WebBrowser vào hộp công cụ Windows Forms. Kiểm soát WebBrowser xuất hiện với các văn bản Thám hiểm trong hộp công cụ.

    Lưu ý Trong Visual Studio 2005, bạn không phải bước 2.
  3. Sử dụng hộp công cụ, thêm một điều khiển WebBrowser, một điều khiển OpenFileDialog và một điều khiển CommandButton để Form1. Điều này cho biết thêm các AxWebBrowser1, OpenFileDialog1, và Button1 tài khoản của biến để các Form1 lớp học. Visual C# 2005, các webBrowser1, openFileDialog1, và button1 tài khoản của các biến được thêm vào.
  4. Ngày Form1, bấm đúp vào Button1. Điều này cho biết thêm các Button1_Click sự kiện để Form1.
  5. Trong cửa sổ mã cho Form1, thêm không gian tên sau đây vào danh sách:
    using System.Reflection;					
  6. Xác định một thành viên tư nhân trong lớp học Form1 như sau:
    private Object oDocument; 
  7. Ở phần cuối của các InitializeComponent phương pháp của lớp Form1, thêm mã sau để xử lý các Form1_Load, Form1_Closed, và axWebBrowser1_NavigateComplete2 sự kiện:
    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. Thay thế mã sau
    private void button1_Click(object sender, System.EventArgs e){}					
    với:
    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() ); }					
    Lưu ýBạn phải thay đổi mã trong Visual Studio 2005. Theo mặc định, Visual C# thêm một hình thức dự án khi bạn tạo một dự án Windows Forms. Các hình thức được đặt tên Form1. Hai tập tin mà đại diện cho các hình thức được đặt tên là Form1.cs và Form1.designer.cs. Bạn viết mã trong Form1.cs. Các tập tin Form1.designer.cs là nơi các nhà thiết kế các hình thức Windows viết mã thực hiện tất cả các hành động mà bạn thực hiện bằng cách kéo và thả điều khiển từ hộp công cụ.

    Để biết thêm chi tiết về Windows Forms Designer Visual C# 2005, truy cập vào các nhà phát triển Microsoft sau trang Web mạng (MSDN):
  9. Nhấn F5 để chạy các dự án. Khi bạn bấm vào Trình duyệt, các Mở hộp thoại sẽ xuất hiện và cho phép bạn duyệt đến một tài liệu Word, một bảng tính Excel hoặc một bài thuyết trình PowerPoint. Chọn bất kỳ tập tin và sau đó bấm Mở. Tài liệu mở bên trong kiểm soát WebBrowser, và một hộp thông điệp hiển thị tên của máy chủ tài liệu văn phòng sẽ xuất hiện.

Những gì để xem xét khi bạn sử dụng điều khiển WebBrowser

Bạn nên xem xét sau khi bạn sử dụng điều khiển WebBrowser:
  • Kiểm soát WebBrowser duyệt những tài liệu không đồng bộ. Khi bạn gọi WebBrowser1.Navigate, các cuộc gọi trở lại điều khiển Visual C# đơn của bạn trước khi tài liệu đã được nạp hoàn toàn. Nếu bạn có kế hoạch tự động hoá các tài liệu chứa, bạn cần phải sử dụng các NavigateComplete2 sự kiện để được thông báo khi tài liệu đã hoàn tất tải. Sử dụng các Tài liệu tài sản của các WebBrowser đối tượng được thông qua năm để có được một tham chiếu đến đối tượng tài liệu văn phòng, trong đó, trong mã trước, được thiết lập để oDocument.
  • Kiểm soát WebBrowser không hỗ trợ trình đơn hợp nhất.
  • Trong Internet Explorer phiên bản 5.0 và sau này, bạn có thể hiển thị thanh công cụ docked bằng cách sử dụng đoạn mã sau:
     // 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);					
  • Có một số vấn đề được biết đến với việc có nhiều hơn một WebBrowser kiểm soát trong một dự án và với việc kiểm soát mỗi tải với cùng loại của các tài liệu văn phòng (có nghĩa là, tất cả các tài liệu Word hoặc tất cả Excel bảng). Microsoft khuyến cáo bạn sử dụng chỉ có một điều khiển cho từng dự án, và duyệt đến một trong những tài liệu tại một thời điểm.

    Vấn đề thường gặp nhất là với Microsoft Office lệnh thanh, mà xuất hiện bị vô hiệu hoá. Nếu bạn có hai điều khiển WebBrowser trên giống như hình thức, cả hai đều được nạp với các tài liệu Word, và nếu bạn có hiển thị thanh công cụ bằng cách sử dụng một trong các kỹ thuật trước, chỉ có một tập hợp các thanh công cụ đang hoạt động và hoạt động một cách chính xác. Khác là vô hiệu hoá và không thể được sử dụng.
  • Rõ ràng kiểm soát WebBrowser nội dung hiện tại của nó, trong các Nhấp vào sự kiện của một nút lệnh (hoặc ở một số nơi thích hợp khác trong mã của bạn), trình duyệt để trang blank mặc định bằng cách sử dụng đoạn mã sau:
       AxWebBrowser1.Navigate("about:blank");					

Những gì để xem xét khi bạn sử dụng điều khiển WebBrowser cùng với một chương trình Microsoft Office 2007

Theo mặc định, các chương trình Office 2007 mở tài liệu văn phòng trong trình duyệt Web. Hành vi này cũng ảnh hưởng đến việc kiểm soát WebBrowser. Chúng tôi đề nghị bạn sử dụng một tùy chỉnh ActiveX tài liệu container thay vì kiểm soát WebBrowser của khi bạn phát triển các ứng dụng mở tài liệu văn phòng 2007. Để biết thêm chi tiết về tuỳ chỉnh ActiveX tài liệu container, nhấp vào số bài viết sau đây để xem bài viết trong cơ sở kiến thức Microsoft:
311765Visual C++ ActiveX kiểm soát cho lưu trữ tài liệu văn phòng trong Visual Basic hoặc HTML
Để hiện các ứng dụng đó có yêu cầu tương thích ngược với sự kiểm soát WebBrowser, bạn có thể sửa đổi registry để cấu hình Internet Explorer. Bạn có thể sử dụng phương pháp này để cấu hình Internet Explorer để mở tài liệu văn phòng 2007 trong trình duyệt Web. Để biết thêm chi tiết, nhấp vào số bài viết sau đây để xem bài viết trong cơ sở kiến thức Microsoft:
927009Một cửa sổ mới sẽ mở ra khi bạn cố gắng xem tài liệu chương trình Microsoft Office 2007 trong Windows Internet Explorer 7
Lưu ý Nếu bạn sửa đổi sổ đăng ký bằng cách sử dụng các phương pháp được đề cập trong bài viết cơ sở kiến thức Microsoft 927009, những thay đổi ảnh hưởng đến sự kiểm soát WebBrowser bạn sử dụng trong các ứng dụng. Những thay đổi cũng ảnh hưởng đến tất cả trường hợp của Internet Explorer. Thêm vào đó, phương pháp này có thể không làm việc cho bất kỳ phiên bản tương lai của dãy phòng Microsoft Office. Vì vậy, chúng tôi khuyên bạn sử dụng phương pháp này chỉ để tương thích với một ứng dụng hiện có.
THAM KHẢO
Để biết thêm chi tiết về việc sử dụng kiểm soát WebBrowser, nhấp vào số bài viết sau để xem các bài viết trong cơ sở kiến thức Microsoft:
304562Visual Studio 2005 và Visual Studio.NET cung cấp một điều khiển OLE container cho Windows Forms
243058 Làm thế nào để sử dụng điều khiển WebBrowser để mở một tài liệu văn phòng
162719 Làm thế nào để sử dụng điều khiển WebBrowser từ Visual Basic 5,0
202476 LỖI: Không thể chỉnh sửa tài liệu Word trong điều khiển OLE hoặc WebBrowser
188271 Làm thế nào để in nội dung của điều khiển trình duyệt Web từ BB
191692 ShDocVw.dll không được bao gồm trong gói phần mềm cài đặt PDW
238313 Truy cập vào Internet Explorer Document Object Model từ Visual Basic
927009 Một cửa sổ mới sẽ mở ra khi bạn cố gắng xem tài liệu chương trình Microsoft Office 2007 trong Windows Internet Explorer 7
xl2003 ppt2003 wd2003 web trình duyệt kbActiveDocs kbExcel kbactivexscript kbPowerPt kbWord

Cảnh báo: Bài viết này được dịch tự động

Thuộc tính

ID Bài viết: 304662 - Xem lại Lần cuối: 08/27/2011 23:03:00 - Bản sửa đổi: 2.0

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

  • kbactivedocs kbautomation kbhowto kbwebbrowser kbmt KB304662 KbMtvi
Phản hồi