Word Statusbar получает reset, когда я использую range.Information

У меня есть следующий код (упрощенный, чтобы показать проблему):

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 (шаг за шагом) позже

Edit:

Предоставленный код использует NetOffice, а не библиотеку interop от Microsoft напрямую, поэтому синтаксис верен. Вы можете заметить в представленных снимках экрана, что они взяты из запущенного приложения. Точка останова, выделение текущей строки выполнения кода, а также фактический результат кода в текстовом приложении справа. Вначале есть желаемая статусная строка "Tabelle 8 von 17 wird neu erstellt". (Таблица 8 из 17 воссоздается), и на следующем шаге моя статусная панель исчезла, а ее материал по умолчанию "165 из 8227 Wörtern" (165 из 8227 слов)

Ответ 1

В чем может быть причина?

Я считаю, что это связано с используемой вами библиотекой. Я проверил ваш код, но с библиотекой Word Interop, и единственным способом получить строку состояния reset было вручную щелкнуть/ввести в окне Word.

Как я могу предотвратить это?

Я бы сказал, посмотрите на базу кода библиотеки, которую вы используете. Вероятно, он делает то, что вызывает поведение. Если не существует конкретной причины, по которой вы используете NetOffice, я бы предложил перейти на стандартный Interop или VSTO.

Знаете ли вы о других ситуациях, когда это может произойти?

Как и выше, я мог получить только строку состояния reset, если я вручную выполнил какой-то ввод в окно.