在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
功能可以提供帮助?
答案 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