我在表单应用程序中使用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
然后我尝试使用Microsoft WebBrowser
控件,如How to use the WebBrowser control in Visual Basic to open an Office document中描述的那样,我最终遇到了同样的问题。
有什么想法解决这个问题吗?
答案 0 :(得分:1)
有一个解决方案,但我不确定它有多实用。它会导致对用户注册表的修改(尽管它不需要管理员权限):
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 Document" "BrowserFlags"=dword:80000024 "EditFlags"=dword:00010000 [HKEY_CURRENT_USER\Software\Classes\Word.Document.12\CLSID] @="{F4754C9B-64F5-4B40-8AF4-679732AC0607}"
现在WebBrowser
将就地加载.DOC和.DOCX文件。这是一个几乎没有记录的黑客,more info。
您应该保存所有现有的注册表值并将新的注册表值放在WebBrowser.Navigating
上,然后在WebBrowser.Navigated
上恢复原始文件。 Office 2010和IE10已经验证了这个想法。
答案 1 :(得分:1)
在microsoft支持上找到此解决方法
对于需要在Web浏览器窗口中打开Office文件的应用程序,请使用以下解决方法。但是,以后的Windows Vista中的操作系统可能不存在此Internet Explorer功能。
答案 2 :(得分:-1)
主要问题是网页浏览器不知道如何打开docx文件,因此它将其作为下载提供。该文件类型为Have it open in the computer's default viewer。