【发布时间】:2010-08-05 16:05:06
【问题描述】:
我目前在 .NET (2.0) 表单中托管一个 IE 浏览器控件,并使用它来加载 Office 文件,例如 Excel 和 Word:
_ieCtrl.Navigate("C:\\test.xls", False);
托管和加载运行良好,除非每当我导航到一个文件时,我都会看到一个对话框,询问我是要保存还是打开文件。 (这是标准的 IE 文件下载行为。)当然我总是想打开它,我不想显示对话框。
另一个问题是,当我关闭承载 IE 控件和 Office doc 的窗口时,该文档不会关闭并在磁盘上保持打开状态。这意味着后续尝试通过我的应用程序或本机办公应用程序打开同一文件将由于共享冲突而失败。
是否有一种程序化方法可以避免此对话框并在之后清理资源?我要求一个程序化的答案,因为网络研究只产生了需要修改操作系统级别设置的解决方案。
赏金注意:
我愿意接受任何解决此问题的方法,只要我能够:
- 在我的应用程序中托管一个 Excel 电子表格
- 工作相当透明(避免上述可用性问题)
- 避免进行任何可能影响其他应用程序(尤其包括 IE)的特定于操作系统的更改
- 零附加成本(请不要使用许可的 3rd 方库)代码项目和其他开源资源都可以
- 不要乱用 DSO Framer ActiveX 控件,除非开发/发现了稳定版本
【问题讨论】:
标签: c# .net vb.net winforms webbrowser-control