嗨!
我正在开发一个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
中的更改立即应用吗?还有其他想法吗?
答案 0 :(得分:0)
我没有真正的解决方案,只有一些想法:
System.Windows.Forms.Application.DoEvents();
... Application.ActiveDocument.Words
... 希望它有所帮助, 约尔格