我有以下代码(经过简化以显示问题):
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...
- 可能是什么原因?
- 我该如何预防?
- 您知道其他可能发生这种情况的情况吗?
编辑:
提供的代码使用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/