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

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 304662 - Xem s?n ph?m mà bài này áp d?ng vào.
Đ?i v?i m?t Microsoft Visual Basic.NET Phiên b?n c?a bài vi?t này, xem 304643.
Bung t?t c? | Thu g?n t?t c?

? Trang này

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):
    http://msdn2.Microsoft.com/en-US/Library/ms173077.aspx
  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

Thu?c tính

ID c?a bài: 304662 - L?n xem xét sau cùng: 27 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
  • 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
T? khóa: 
kbactivedocs kbautomation kbhowto kbwebbrowser kbmt KB304662 KbMtvi
Máy d?ch
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

Cung cấp Phản hồi

 

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