通過WebBrowser顯示Word文檔的方法

通過以下代碼可以實現利用WebBrowser來顯示word文檔

   public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
           
        }
        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            if(ofd.ShowDialog() == DialogResult.OK)
            {
                webBrowser1.Navigate(ofd.FileName);
            }
        }
    }

然而, WebBrowser 的 Navigate 方法打開 Office 文檔時,出現以下問題:

問題: Office 文檔並沒有正確嵌入到 WebBrowser 控件中,反而被系統自帶的 Office 應用程序打開了(等同於雙擊 Office  文檔);

 

原因:是Office 文檔瀏覽設置的問題,可能是從office2007版本開始的。

解決方案:

修改註冊表,詳細參見mygisforum的文章《WebBrowser 中無法正常嵌入Office 文檔的問題》,適合Word\Excel\PowerPoint。

通常在修改之前,查看一次原來的註冊表數值並記錄下來(保存下來),以免以後需要修改回去的時候,能夠及時改回去。

比如,對於word來講,原本的註冊表數值爲:

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.Document.8] "BrowserFlags"=dword:8 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.RTF.8] "BrowserFlags"=dword:2c

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.Document.12] "BrowserFlags"=dword:2c [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.DocumentMacroEnabled.12] "BrowserFlags"=dword:2c
(以上四行中的最後紅色字符表示原來的註冊表的數值,十六進制數值。)

爲了在WebBrowser中顯示Word,修改後的註冊表相應數值都改爲80000024,如下所示:

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.Document.8] "BrowserFlags"=dword:80000024

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.RTF.8] "BrowserFlags"=dword:80000024

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.Document.12] "BrowserFlags"=dword:80000024

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.DocumentMacroEnabled.12] "BrowserFlags"=dword:80000024

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章