Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将word中的活动文档设置为只读_C#_Ms Word - Fatal编程技术网

C# 将word中的活动文档设置为只读

C# 将word中的活动文档设置为只读,c#,ms-word,C#,Ms Word,我正在使用Microsoft.Office.Interop.Word来操作文档,例如基于模板创建新文档 我遇到的唯一问题是将Word中的活动文档设置为只读。请记住,我根据模板打开了一个新文档,用必要的信息填充了一些字段,然后需要将此文档以只读形式显示给用户。此文档仍在内存中(没有路径) 这个库有一个只读属性,但是是只读的(哦,讽刺的是…)。有人有什么建议可以帮助我吗?只读是文档的定义功能之一,因此必须在创建文档时设置它(添加到应用程序)。示例代码: bool readOnly = true; O

我正在使用Microsoft.Office.Interop.Word来操作文档,例如基于模板创建新文档

我遇到的唯一问题是将Word中的活动文档设置为只读。请记住,我根据模板打开了一个新文档,用必要的信息填充了一些字段,然后需要将此文档以只读形式显示给用户。此文档仍在内存中(没有路径)


这个库有一个只读属性,但是是只读的(哦,讽刺的是…)。有人有什么建议可以帮助我吗?

只读
文档
的定义功能之一,因此必须在创建
文档时设置它(添加到
应用程序
)。示例代码:

bool readOnly = true;
Object templatePath = @"Path";
Object oMissing = System.Reflection.Missing.Value;
Word.Application wordApp = new Word.Application();
Word.Document wordDoc = wordApp.Documents.Open(templatePath, oMissing, readOnly, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing);

只读
文档
的定义功能之一,因此必须在创建
文档
时设置它(添加到
应用程序
)。示例代码:

bool readOnly = true;
Object templatePath = @"Path";
Object oMissing = System.Reflection.Missing.Value;
Word.Application wordApp = new Word.Application();
Word.Document wordDoc = wordApp.Documents.Open(templatePath, oMissing, readOnly, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing);

创建文档并填写必要的字段后,保存它。然后以只读方式重新打开,并向用户显示。@chrislive我尝试了该解决方案,它成功了,但我希望在不使用此方法的情况下实现某些功能。更动态的东西。除非word可以“打开”内存中已经存在的文档,否则真的没有其他方法。创建文档并填写必要的字段后,保存它。然后以只读方式重新打开,并向用户显示。@chrislive我尝试了该解决方案,它成功了,但我希望在不使用此方法的情况下实现某些功能。更动态的东西。除非word可以“打开”内存中已经存在的文档,否则真的没有其他方法。我知道我可以这样做,但我希望在打开文档时设置此属性。我认为必须有其他方法防止用户在不保存文档的情况下编辑文档,然后重新打开。@Albert如前所述,没有其他方法。您可以打算提出一种自定义方法来避免编写信息(例如,自动删除),但实现可能会变得困难,最终性能很少会足够好。具有讽刺意味的是,ReadOnly属性是只读的(正如您正确指出的那样),因此在这方面您无能为力。在任何情况下,我认为不应该有任何问题:当执行从editable到readonly的转换时,用户会期待一个(短的)等待期。好吧,这很公平。如果唯一的方法是创建一个更定制的方法,我不希望在这方面花费更多的时间,我只是觉得我遗漏了一些东西。但是,谢谢我的好先生。我知道我可以这样做,但我希望在打开文档时设置此属性。我认为必须有其他方法防止用户在不保存文档的情况下编辑文档,然后重新打开。@Albert如前所述,没有其他方法。您可以打算提出一种自定义方法来避免编写信息(例如,自动删除),但实现可能会变得困难,最终性能很少会足够好。具有讽刺意味的是,ReadOnly属性是只读的(正如您正确指出的那样),因此在这方面您无能为力。在任何情况下,我认为不应该有任何问题:当执行从editable到readonly的转换时,用户会期待一个(短的)等待期。好吧,这很公平。如果唯一的方法是创建一个更定制的方法,我不希望在这方面花费更多的时间,我只是觉得我遗漏了一些东西。但是谢谢我的好先生。