c# - 如何在 VSTO 中打开部分模态表单?
问题描述
我想在 VSTO 中打开一个表单,通过它我应该仍然能够选择 Excel 单元格,但不能访问任何菜单或创建新工作表。
我现在有下面的代码,但是这个,我仍然可以点击菜单按钮。我不想从代码中禁用每个菜单按钮
Form1 frm = new Form1();
frm.Show(new WindowFormsWrapper(new IntPtr(Globals.ThisAddIn.Application.Windows[1].Hwnd)));
解决方案
Word 具有一项保护功能,仅允许您进行某些修改,例如文档内容或样式。Excel 似乎也有它,但我的代理不允许我打开该页面,所以我不知道它做什么和不允许做什么。如果这还不够接近,那么您可能就不走运了,因为 Office 并不是真正设计用于以这种方式使用的。
此外,仅供参考,您不应从非模态对话框访问 VSTO API。VSTO 中的多线程通常充满危险。
您可以考虑改用任务窗格。假设您没有在其中创建自己的线程,这里就不会有线程问题。
推荐阅读
- r - 当使用 flexdashboard 生成的 html 文件在本地打开时,有没有办法让图形渲染?
- javascript - React JS:渲染的钩子比预期的要少。这可能是由于意外提前退货声明造成的
- css - 基于类的 Stencil 组件上的样式宿主元素
- android - 在 Android 10 上的 Xamarin 表单中使用权限请求遇到可解释的问题
- json - 无法将文本数据转换为 json
- html -
- angular - IIS:在同一站点下托管 2 个 SPA
- docker - Docker 在 Kubernetes 中的 docker 路由
- sharepoint-online - 如何使用 spfx 检索 SharePoint 列表项附件?
- testing - 如何在测试中抛出这个异常?