如何在VSTO中打开部分模态表单?

时间:2019-02-15 13:42:24

标签: c# vsto

我想在VSTO中打开一个表单,通过该表单我仍然可以选择Excel单元格,但不能访问任何菜单或创建新表。

我现在有下面的代码,但是仍然可以单击菜单按钮。我不想从代码中禁用每个菜单按钮

Form1 frm = new Form1();
frm.Show(new WindowFormsWrapper(new IntPtr(Globals.ThisAddIn.Application.Windows[1].Hwnd)));

1 个答案:

答案 0 :(得分:0)

Word的protection feature仅允许您进行某些修改,例如记录内容或样式。 Excel似乎也有它,但是我的代理不允许我打开该页面,所以我无法告诉它做什么和不允许做什么。如果距离不够近,则可能是您不走运,因为Office并非真正设计用于这种方式。

此外,仅供参考,您不应该从非模态对话框访问VSTO API。 Multi-threading in VSTO通常充满危险。

您可以考虑使用任务窗格。假设您没有在其中创建自己的线程,那么这里就不会有线程问题。