Word Statusbar сбрасывается при использовании 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 (перешагнуть) позже

Редактировать:

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

1 ответ

Что может быть причиной?

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

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

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

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

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

Другие вопросы по тегам