VSTO Word AddIn:MessageBox时序问题

时间:2013-04-23 09:41:39

标签: c# ms-word vsto

嗨!

我正在开发一个VSTO Word Addin,可以帮助用户替换给定文本中的某些单词。对话框引导用户完成替换。 现在,当用户替换最后一个单词时,我想显示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中的更改立即应用吗?还有其他想法吗?

1 个答案:

答案 0 :(得分:0)

我没有真正的解决方案,只有一些想法:

  • 也许你可以做System.Windows.Forms.Application.DoEvents(); ...
  • 或者创建新文档,再次将其删除以强制Winword更新Application.ActiveDocument.Words ...

希望它有所帮助, 约尔格