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, если я вручную выполнил какой-то ввод в окно.