SDI:使模态表单应用最上层

在我用C#编写的VSTO外接程序中,我用form.ShowDialog();显示了一个模态窗体form.ShowDialog(); 。 此模式窗体的所有者是(在Excel 2013中)当前活动的工作簿窗口。

现在的问题:1)用Ctrl + N打开第二个工作簿2)显示模式窗体3)现在你可以通过使用Windows任务栏更改活动工作表

结果:您无法在此工作簿窗口中执行任何操作。

问题:如何才能实现像标准MessageBox一样的行为? 我不会让我激活另一个窗口比它的父窗口。

PS:当然,我不想设置form.TopMost = true; 因为它不应该在其他应用程序之前。