Πώς να χρησιμοποιήσετε το στοιχείο ελέγχου WebBrowser για να ανοίξετε έγγραφα του Office στο Visual C# 2005 ή στην Visual C#.NET

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 304662 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Για Microsoft Visual Basic.NET έκδοση αυτού του άρθρου, ανατρέξτε στο θέμα 304643.
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Περίληψη

Ίσως θέλετε να εμφανίσετε ή να ενσωματώσετε ένα έγγραφο του Microsoft Office απευθείας σε μια φόρμα Microsoft Visual C#. Microsoft Visual C# 2005 και Microsoft Visual C#.NET παρέχουν ένα στοιχείο ελέγχου OLE που σάς επιτρέπει να ενσωματώσετε ένα έγγραφο του Office σε μια φόρμα. Εάν θέλετε να ενσωματώσετε ένα υπάρχον έγγραφο και να το ανοίξετε ως αντικείμενο επιτόπου ActiveX εγγράφου σε μορφή Visual C#, μια πιθανή λύση είναι να χρησιμοποιήσετε το στοιχείο ελέγχου Microsoft WebBrowser.

Αυτό το άρθρο επιδεικνύει τον τρόπο αναζήτηση σε ένα υπάρχον έγγραφο του Office και εμφανίζεται μέσα σε μια φόρμα Visual C#, χρησιμοποιώντας το στοιχείο ελέγχου WebBrowser.

Περισσότερες πληροφορίες

Έγγραφα ΑctiveX είναι ενσωματωθεί αντικείμενα OLE που συμπεριφέρονται περισσότερο ως στοιχεία ελέγχου ActiveX από παραδοσιακές αντικείμενα OLE. Σε αντίθεση με τις παραδοσιακές ενσωματωμένο αντικείμενο, ένα έγγραφο ActiveX δεν έχει σχεδιαστεί να είναι ένα αντικείμενο που περιέχονται στο μέγεθος του εγγράφου. Αντίθετα, θεωρείται ότι είναι στο ίδιο ένα πλήρες έγγραφο που προβάλλεται απλώς (όπως με τον Microsoft Internet Explorer) ή που συλλέγονται σε έναν πόρο με άλλα έγγραφα (όπως ένα αρχείο του Microsoft Office Binder). Ένα έγγραφο ActiveX που φιλοξενείται στο στοιχείο ελέγχου WebBrowser πάντα είναι ενεργό. Επομένως, σε αντίθεση με τις παραδοσιακές OLE ενσωματωμένα αντικείμενα, υπάρχει κανένα νόημα στο σημείο ενεργοποίησης.

Αν και 2005 Visual C# και Visual C#.NET υποστηρίζουν φιλοξενίας ActiveX έγγραφα απευθείας, μπορείτε να χρησιμοποιήσετε το στοιχείο ελέγχου WebBrowser για το σκοπό αυτό. Το στοιχείο ελέγχου WebBrowser (Shdocvw.dll) αποτελεί τμήμα του Internet Explorer και μπορεί να χρησιμοποιηθεί μόνο σε συστήματα που έχουν εγκατεστημένο τον Internet Explorer.

Δημιουργία εφαρμογής Visual C# που ανοίγει έγγραφα του Office

Για να δημιουργήσετε μια εφαρμογή Visual C# που ανοίγει έγγραφα του Office, ακολουθήστε τα εξής βήματα:
  1. Δημιουργήστε ένα νέο έργο εφαρμογών των Windows στο Visual C# 2005 ή στην Visual C#.NET. Δημιουργείται η φόρμα Form1 από προεπιλογή.

    Σημείωση Στο Visual C# 2005, εάν δεν βρείτε το αρχείο SHDocVw.dll ή το αρχείο AxSHDocVw.dll, εκτελέστε την ακόλουθη εντολή στη γραμμή εντολών Visual Studio:
    aximp %WINDIR%\system32\shdocvw.dll
    Στη συνέχεια, δημιουργήστε μια κοινή γλώσσα χρόνου εκτέλεσης μεσολάβησης (SHDocVw.dll) και ένα διακομιστή μεσολάβησης φόρμες των Windows (AxSHDocVw.dll) για το στοιχείο ελέγχου Microsoft Web Browser. Για να προσθέσετε αρχεία DLL Visual C# 2005, ακολουθήστε τα εξής βήματα:
    1. Από το Έργο μενού, κάντε κλικ στο κουμπί Προσθήκη αναφοράς.
    2. Με το Προσθήκη αναφοράς στο παράθυρο διαλόγου, κάντε κλικ στο κουμπί Αναζήτηση.
    3. Εντοπίστε και επιλέξτε το αρχείο AxSHDocVw.dll και το αρχείο SHDocVw.dll.
    4. Για να προσθέσετε αναφορές έργου για αυτά τα δύο αρχεία, κάντε κλικ στο κουμπί OK.
  2. Από το Εργαλεία μενού, κάντε κλικ στο κουμπί Προσαρμόστε την εργαλειοθήκη Για να ανοίξετε το Προσαρμόστε την εργαλειοθήκη στο παράθυρο διαλόγου. Από το Τα στοιχεία COM καρτέλα, προσθέστε μια αναφορά Microsoft WebBrowser. Κάντε κλικ στο κουμπί OK Για να προσθέσετε το στοιχείο ελέγχου WebBrowser εργαλειοθήκη των Windows Forms. Το στοιχείο ελέγχου WebBrowser εμφανίζεται με το κείμενο Εξερεύνηση στην εργαλειοθήκη.

    Σημείωση Στο Visual Studio 2005 δεν έχουν στο βήμα 2.
  3. Χρησιμοποιώντας την εργαλειοθήκη, προσθέστε ένα στοιχείο ελέγχου WebBrowser, ένα στοιχείο ελέγχου OpenFileDialog και ένα στοιχείο ελέγχου CommandButton Form1. Αυτό προσθέτει τη AxWebBrowser1, OpenFileDialog1, και Button1 μεταβλητές μελών για την Φόρμα1 (Form1) κλάση. Στο Visual C# 2005, το webBrowser1, openFileDialog1, και Button1 προστίθενται μεταβλητές μελών.
  4. Στην Form1, κάντε διπλό κλικ Button1. Αυτό προσθέτει τη Button1_Click το συμβάν για να Form1.
  5. Στο παράθυρο κώδικα της φόρμας Form1, προσθέστε τον ακόλουθο χώρο ονομάτων στη λίστα:
    using System.Reflection;
    					
  6. Ορισμός ιδιωτικό μέλος στην κλάση Φόρμα1 (Form1) ως εξής:
    private Object oDocument; 
  7. Στο τέλος της InitializeComponent η μέθοδος κλάσης Φόρμα1 (Form1), προσθέστε τον ακόλουθο κώδικα για το χειρισμό του Form1_Load, Form1_Closed, και axWebBrowser1_NavigateComplete2 συμβάντα:
    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. Αντικαταστήστε τον ακόλουθο κώδικα
    private void button1_Click(object sender, System.EventArgs e)
    {
    }
    					
    με:
    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() ); 
    }
    					
    ΣημείωσηΠρέπει να αλλάξετε τον κωδικό στο Visual Studio 2005. Από προεπιλογή, Visual C# προσθέτει μία φόρμα έργου όταν δημιουργείτε ένα έργο Windows Forms. Η φόρμα ονομάζεται Form1. Τα δύο αρχεία που αντιπροσωπεύουν τη φόρμα ονομάζονται Form1.cs και Form1.designer.cs. Συντάξτε τον κώδικα στο Form1.cs. Το αρχείο Form1.designer.cs είναι όπου ο σχεδιαστής Windows εγγράφει τον κώδικα που υλοποιεί όλες τις ενέργειες που εκτελούνται με μεταφορά και απόθεση στοιχείων ελέγχου από την εργαλειοθήκη.

    Για περισσότερες πληροφορίες σχετικά με τη σχεδίαση φορμών Windows στο Visual C# 2005, επισκεφθείτε την ακόλουθη Microsoft Developer Network (MSDN) τοποθεσία Web:
    http://msdn2.Microsoft.com/en-us/library/ms173077.aspx
  9. Πατήστε F5 για να εκτελεστεί το έργο. Όταν κάνετε κλικ Αναζήτηση, το Άνοιγμα εμφανίζεται το παράθυρο διαλόγου και σας επιτρέπει να μεταβείτε σε ένα έγγραφο του Word, φύλλο εργασίας του Excel ή μια παρουσίαση του PowerPoint. Επιλέξτε οποιοδήποτε αρχείο και στη συνέχεια κάντε κλικ στο κουμπί Άνοιγμα. Το έγγραφο ανοίγει μέσα στο στοιχείο ελέγχου WebBrowser και εμφανίζεται ένα πλαίσιο μηνύματος που εμφανίζει το όνομα του διακομιστή εγγράφων του Office.

Τι πρέπει να εξετάσετε όταν χρησιμοποιείτε το στοιχείο ελέγχου WebBrowser

Όταν χρησιμοποιείτε το στοιχείο ελέγχου WebBrowser, πρέπει να λάβετε υπόψη τα εξής:
  • Το στοιχείο ελέγχου WebBrowser μεταβεί σε έγγραφα ασύγχρονα. Κατά την κλήση WebBrowser1.Navigate, η κλήση επιστρέφει τον έλεγχο εφαρμογής Visual C# πριν από το έγγραφο έχει φορτωθεί τελείως. Εάν σκοπεύετε να αυτοματοποίηση που περιέχονται στο έγγραφο, πρέπει να χρησιμοποιήσετε το NavigateComplete2 το συμβάν για να ειδοποιηθείτε όταν ολοκληρωθεί η φόρτωση του εγγράφου. Χρήση του Το έγγραφο ιδιότητα του WebBrowser αντικείμενο που διαβιβάστηκε για να λάβετε μια αναφορά αντικειμένου εγγράφου του Office, το οποίο με τον παραπάνω κώδικα έχει οριστεί σε oDocument.
  • Το στοιχείο ελέγχου WebBrowser δεν υποστηρίζει τη συγχώνευση μενού.
  • Στον Internet Explorer έκδοση 5.0 και νεότερες, μπορείτε να εμφανίσετε αγκυρωμένες γραμμές εργαλείων, χρησιμοποιώντας τον ακόλουθο κώδικα:
     // 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);
    					
  • Υπάρχουν πολλά γνωστά ζητήματα με περισσότερα από ένα στοιχείο ελέγχου WebBrowser σε ένα έργο και με την κάθε στοιχείου ελέγχου με τον ίδιο τύπο εγγράφου του Office (δηλαδή, όλα τα έγγραφα του Word ή όλα τα φύλλα εργασίας του Excel). Η Microsoft συνιστά να χρησιμοποιήσετε μόνο ένα στοιχείο ελέγχου για κάθε έργο και αναζητήστε ένα έγγραφο τη φορά.

    Είναι το πιο συνηθισμένο πρόβλημα με γραμμές εντολών του Microsoft Office, τα οποία εμφανίζονται απενεργοποιημένες. Εάν έχετε δύο στοιχεία ελέγχου WebBrowser στην ίδια φόρμα, τα οποία φορτώνονται με έγγραφα του Word και εάν εμφανίζονται γραμμές εργαλείων, χρησιμοποιώντας μία από τις παραπάνω τεχνικές, μόνο ένα σύνολο γραμμών εργαλείων είναι ενεργή και λειτουργεί σωστά. Το άλλο είναι απενεργοποιημένη και δεν μπορεί να χρησιμοποιηθεί.
  • Για να καταργήσετε την επιλογή του τα τρέχοντα περιεχόμενα του στοιχείου ελέγχου WebBrowser σε το Κάντε κλικ στο κουμπί αναζήτηση συμβάντων από κάποιο άλλο κουμπί εντολής (ή σε κάποια άλλη κατάλληλη θέση στον κώδικά σας), στην προεπιλεγμένη κενή σελίδα χρησιμοποιώντας τον ακόλουθο κώδικα:
       AxWebBrowser1.Navigate("about:blank");
    					

Τι πρέπει να εξετάσετε όταν χρησιμοποιείτε το στοιχείο ελέγχου WebBrowser μαζί με ένα πρόγραμμα του Microsoft Office 2007

Από προεπιλογή, τα προγράμματα του Office 2007 δεν ανοίγουν έγγραφα του Office στο πρόγραμμα περιήγησης Web. Αυτή η συμπεριφορά επηρεάζει επίσης το στοιχείο ελέγχου WebBrowser. Συνιστάται να χρησιμοποιήσετε ένα προσαρμοσμένο κοντέινερ ActiveX εγγράφου αντί για το στοιχείο ελέγχου WebBrowser όταν αναπτύσσετε εφαρμογές που ανοίγουν έγγραφα του Office 2007. Για περισσότερες πληροφορίες σχετικά με τις προσαρμοσμένες κοντέινερ ActiveX document, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
311765Οπτικό στοιχείο ελέγχου C++ ActiveX για τη διατήρηση των εγγράφων του Office σε Visual Basic ή HTML
Για τις υπάρχουσες εφαρμογές που απαιτούν συμβατότητα με το στοιχείο ελέγχου WebBrowser μπορείτε να τροποποιήσετε το μητρώο για να ρυθμίσετε τις παραμέτρους του Internet Explorer. Μπορείτε να χρησιμοποιήσετε αυτήν τη μέθοδο για να ρυθμίσετε τις παραμέτρους του Internet Explorer για να ανοίξετε έγγραφα του Office 2007 στο πρόγραμμα περιήγησης Web. Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
927009Ανοίγει ένα νέο παράθυρο όταν προσπαθείτε να προβάλετε ένα πρόγραμμα του Microsoft Office 2007 στον Windows Internet Explorer 7
Σημείωση Εάν τροποποιήσετε το μητρώο, χρησιμοποιώντας τη μέθοδο που αναφέρεται στο άρθρο 927009 της Γνωσιακής βάσης, οι αλλαγές επηρεάζουν το στοιχείο ελέγχου WebBrowser που χρησιμοποιείτε στην εφαρμογή. Οι αλλαγές επηρεάζουν επίσης όλες τις εμφανίσεις του Internet Explorer. Επιπλέον, αυτή η μέθοδος ενδέχεται να λειτουργεί για σε μελλοντικές εκδόσεις της οικογένειας προγραμμάτων του Microsoft Office. Επομένως, συνιστούμε να χρησιμοποιήσετε αυτήν τη μέθοδο μόνο για συμβατότητα με μια υπάρχουσα εφαρμογή.

Αναφορές

Για περισσότερες πληροφορίες σχετικά με τη χρήση του στοιχείου ελέγχου WebBrowser, κάντε κλικ στους αριθμούς των άρθρων παρακάτω, για να προβάλετε τα άρθρα της Γνωσιακής Βάσης της Microsoft:
304562Visual Studio 2005 και Visual Studio.NET παρέχουν ένα στοιχείο ελέγχου κοντέινερ OLE για Windows Forms
243058 Τρόπος χρήσης του στοιχείου ελέγχου WebBrowser για να ανοίξετε ένα έγγραφο του Office
162719 Τρόπος χρήσης του στοιχείου ελέγχου WebBrowser από Visual Basic 5.0
202476 Σφάλμα: Δεν είναι δυνατό να επεξεργαστείτε το έγγραφο του Word σε στοιχείο ελέγχου OLE ή WebBrowser
188271 Τρόπος εκτύπωσης τα περιεχόμενα του στοιχείου ελέγχου περιήγησης Web από VB
191692 Shdocvw.dll δεν περιλαμβάνεται στο πακέτο εγκατάστασης PDW
238313 Πρόσβαση στο μοντέλο αντικειμένου του Internet Explorer έγγραφο από τη Visual Basic
927009 Ανοίγει ένα νέο παράθυρο όταν προσπαθείτε να προβάλετε ένα πρόγραμμα του Microsoft Office 2007 στον Windows Internet Explorer 7

Ιδιότητες

Αναγν. άρθρου: 304662 - Τελευταία αναθεώρηση: Κυριακή, 29 Μαΐου 2011 - Αναθεώρηση: 4.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 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:304662

Αποστολή σχολίων

 

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