2013-04-23 3 views
2

Привет!VSTO Word AddIn: MessageBox Timing Issue

Я работаю над дополнением Word VSTO, которое помогает пользователю заменить определенные слова в заданном тексте. Диалоговое окно направляет пользователя через замены. Теперь, когда пользователь заменяет последнее слово, я хочу показать MessageBox, что он сделан. Там я борюсь с проблемой времени. MessageBox появляется до появления последней замены. Несмотря на это, строка кода для замены выполняется раньше. После нажатия кнопки MessageBox замена производится так, как должно быть.

Вот строка я использую, чтобы заменить слово:

using Microsoft.Office.Interop.Word; 
... 
Words wordsText = Globals.ThisAddIn.Application.ActiveDocument.Words; 
... 
wordsText[wordPos].Text = "[some text]"; 

И это моя MessageBox отображается позже:

MessageBox.Show(this._owner, "[you are done text]", "[title]", MessageBoxButtons.OK, MessageBoxIcon.Information); 

Я заметил, что если я поставил точку останова на указанной выше в строке Visual Studio замена производится правильно до появления MessageBox. Могу ли я каким-то образом изменить изменения в Microsoft.Office.Interop.Word.Words для немедленного применения? Любые другие идеи?

+0

бегут задачу на волоске? Я не мог воспроизвести это, прекрасно работает для меня. Может быть, вы можете опубликовать полный код, где вы используете цикл над 'wordPos'? – etaiso

ответ

0

я не имеют никакого реального решения, всего лишь несколько идей:

  • Может быть, вы можете просто сделать System.Windows.Forms.Application.DoEvents(); ...
  • Или создать новый документ, удалите его снова, чтобы заставить WinWord обновить Application.ActiveDocument.Words. ..

Надеется, что это помогает, Йоргу

Смежные вопросы