本文介绍的 VC# 在 WinForm 窗口中显示 Word、Excel 等文件,并不是用 VC# 通过 Microsoft.Office.Interop.Word 来进行的,而是通过一个微软的 dsoframer 的控件进行的。
首先下载 dsoframer,将其拖拽到 Visual Studio 的项目中。
切换到 Form 设计界面,在工具箱中,右键,单击“选择项”。
切换到“COM 组件”,单击“浏览”
添加好后,把控件拖到 Form 中,Visual Studio 自动为您添加相应引用,接下来就是相应的使用了。
打开文件
注意,初始的控件名称,不是我们想象的 dsoFramer1,而是 axFramerControl1,不过这个我们自己可以改。
这样就打开一个 Word 文档了,实际上它是调用的 Word 程序,但它嵌入到了 WinForm 中。
什么,不想要 Word 工具栏?
简单,在设计界面选中控件,切换到属性,将其 Titlebar、Menubar、Toolbars、等设置为 False。
要打印?
好说。
通过调用一个打印对话框,设置打印,然后把设置给 DSOFramer。PrintOut 的第一个参数为 false,表示直接打印,否则他还会弹出一个 Office 的打印对话框。也可使用 PrintPreview() 打印预览。
怎么是用 WPS 打开的?
如果您同时安装了 WPS、Word,程序可能是用 WPS 打开的,怎么换成 Word 呢?Open 时指定第三个参数 progId,如下:
不能 ReplaceText?
这个产品的确存在一些局限,微软现在没有更新了,即使网友修改的 2.3 版本,也无法在 Office 2007 中替换文字。所以,尽量把这个控件只作为显示和打印用吧。
分发时
分发时,在安装程序中,要注意需要调用 regsvr32 注册这个 dll。