c# - 当我使用 range.Information 时,Word 状态栏被重置

标签 c# ms-word netoffice

我有以下代码(经过简化以显示问题):

var wdApp = new Application();
var wdDoc = wdApp.Documents.Open("C:\foo.docx");
wdApp.StatusBar = "Updating...";

var rng = wdDoc.Range(10, 10);
if ((bool)rng.Information(WdInformation.wdWithInTable))
{

}

//StatusBar value is gone...
  • 可能是什么原因?
  • 我该如何预防?
  • 您知道其他可能发生这种情况的情况吗?

这里是问题截图

1 F10(越过)稍后

编辑:

提供的代码使用NetOffice而不是直接来自 Microsoft 的互操作库,因此语法是正确的。您可能会在提供的屏幕截图中注意到它们是从正在运行的应用程序中获取的。断点,当前执行代码行的高亮显示,以及右侧word application中代码的实际执行结果。一开始有所需的状态栏“Tabelle 8 von 17 wird neu erstellt”。 (17 个表中的 8 个正在重新创建),下一步我的状态栏消失了,它的默认内容是“165 von 8227 Wörtern”(8227 个单词中的 165 个)

最佳答案

What could be the reason?

我相信这与您使用的库有关。我测试了你的代码,但使用了 Word Interop 库,我可以重置状态栏的唯一方法是在 Word 窗口中手动单击/键入。

How can I prevent it?

我会说看看您正在使用的库的代码库。它很可能正在做一些导致行为的事情。除非您使用 NetOffice 有特定原因,否则我建议切换到标准 Interop 或 VSTO。

Do you know of other situations where this can happen?

如上所述,如果我手动对窗口进行某种输入,我只能让状态栏重置。

关于c# - 当我使用 range.Information 时,Word 状态栏被重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45918784/

相关文章:

c# - 网络办公室 Hello World

excel - 检查宏样式 Excel UDF 中的数组公式

C# 到 VB.net 项目转换

c# - 如何断言一个方法只被调用一次?

c# - 如何在 MongoDb 和 C# 中编写多键查询?

c# - Word Document.SelectionChange 事件不会触发

c# - 如何检测鼠标单击时控制台应用程序卡住

c# - OpenXML 中的制表符

vim - 使用 Vim 编辑 Microsoft Word 文件