Ran*_*dom 10 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...
Run Code Online (Sandbox Code Playgroud)
编辑:
提供的代码使用NetOffice而不是Microsoft的interop库,因此语法是正确的.您可能会在提供的屏幕截图中注意到它们是从正在运行的应用程序中获取的.断点,突出显示当前执行的代码行,以及右侧单词应用程序中代码的实际结果.一开始就有所需的状态栏"Tabelle 8 von 17 wird neu erstellt." (17个表中的表8正在重新创建)并且在下一步我的状态栏已经消失,其默认内容为"165 von8227Wörtern"(8227个单词中的165个)
可能是什么原因?
我相信这与您正在使用的库有关。我使用 Word Interop 库测试了您的代码,并且重置状态栏的唯一方法是在 Word 窗口中手动单击/键入。
我该如何预防?
我想说看看您正在使用的库的代码库。它很可能正在做一些导致该行为的事情。除非有特定原因您使用 NetOffice,否则我建议您切换到标准 Interop 或 VSTO。
您知道其他可能发生这种情况的情况吗?
如上所述,如果我手动在窗口中执行某种输入,我只能重置状态栏。