3

我在我的表单应用程序中使用控件并且在显示或文件windows forms web browser方面遇到问题。.doc.docx

所有的 pdf 文件似乎都可以正常工作,但是当我选择 word 文件时,它会出现文件下载对话框,其中包含打开、保存和取消选项。

我在这里使用的代码是

  Try
        If (dlgOpen.ShowDialog() = DialogResult.OK) Then
            If (File.Exists(dlgOpen.FileName)) Then
                 wbPreview.Navigate(dlgOpen.FileName)
            End If
        End If
  Catch ex As Exception
        MsgBox(ex.Message, MsgBoxStyle.Critical)
  End Try

然后,我尝试使用如何使用 Visual Basic 中的 WebBrowser 控件中所述的控件来打开 Office 文档Microsoft WebBrowser,但最终遇到了同样的问题。解决这个问题的任何想法?

4

3 回答 3

1

在微软支持上找到了这个解决方法

对于需要在 Web 浏览器窗口中打开 Office 文件的应用程序,请使用以下解决方法。但是,此 Internet Explorer 功能在以后的 Windows Vista 以后的操作系统中可能不存在。

全文可在此处找到当您尝试在 Windows Internet Explorer 7 或 Internet Explorer 8 中查看 2007 Microsoft Office 程序文档时,将打开一个新窗口

于 2013-10-30T09:02:21.627 回答
1

有一个解决方案,但我不确定它有多实用。它会修改用户注册表(尽管它不需要管理员权限):

  • 确定 Microsoft Word 的最新 ProgID。HKEY_CLASSES_ROOT\Word.Document\CurVer有它。例如,它包含Word.Document.12.
  • 在 下添加/更新以下键和值HKEY_CURRENT_USER\Software\Classes\Word.Document.12
REGEDIT4

[HKEY_CURRENT_USER\Software\Classes\Word.Document.12]
@="Microsoft Word 文档"
“浏览器标志”=dword:80000024
"EditFlags"=dword:00010000

[HKEY_CURRENT_USER\Software\Classes\Word.Document.12\CLSID]
@="{F4754C9B-64F5-4B40-8AF4-679732AC0607}"
  • 现在WebBrowser将就地加载 .DOC 和 .DOCX 文件。这是一个几乎没有记录的hack,更多信息

  • 您应该保存任何现有的注册表值并将新的值放入其中WebBrowser.Navigating,然后恢复原始值WebBrowser.Navigated。这个想法已经在 Office 2010 和 IE10 上得到验证。

于 2013-10-29T13:46:53.847 回答
-1

The main problem is the web browser doesn't know how to open a docx file, so instead it offers it up as a download. Have it open in the computer's default viewer for that file type.

于 2013-10-29T12:18:01.233 回答