锁定word文档并在文档上方打开Modal Dialog

时间:2011-10-11 16:16:39

标签: c# multithreading winforms ms-word office-interop

在Windows窗体应用程序中,我需要打开一个word文档并隐藏主窗体,在word文档上方我需要打开一个模态对话框。显示模式对话框时,应禁用该单词,这意味着用户无法在文档中滚动,缩放或写入内容。该文档将由模态对话框控制。

现在我正在使用user32.dll中的一个函数,我用它来设置模态对话框的父进程,这样当我隐藏主窗体时,模态对话框将保持可见。

[DllImport("user32.dll")]
public static extern IntPtr SetParent(IntPtr child, IntPtr newParent);

问题在于,如果我使用Show()ShowModal()打开模态对话框,我仍然可以访问word文档,如果我使用ShowDialog()打开它,则表单有点集成在文档中,我无法点击或关注它。

有谁能告诉我如何锁定Word文档并仍能访问模态对话框?

是否有Office.Interop.Word功能可以提供帮助?

3 个答案:

答案 0 :(得分:0)

您所描述的不是实现目标......实现您希望实现Office AddIn而不是WinForms应用程序所需的内容...有关如何执行该操作的源代码,请参阅{{ 3}}

编辑 - 根据评论:

另一种选择是将Word文档呈现为PDF并显示...用于编辑Word文档,您可以使用http://msdn.microsoft.com/en-us/library/bb157892.aspx(免费)和/或OpenXML from MS(商业)或类似库...

答案 1 :(得分:0)

我认为最好的解决方案是编写Word-Addin,但这将是很多工作,目前可能无法实现。

我认为第二个最好的解决方案是在显示模态对话框时隐藏Word。

答案 2 :(得分:0)

是的,可以使用单词vbModal将文档锁定在表单下:

Sub AutoOpen()
    frmIntro.Show vbModal
End Sub
相关问题