Winforms和VSTO Excel ShowDialog()是部分模态的



有史以来最奇怪的事情!

我正在做一个Excel加载项,功能区有一些按钮,可以弹出一些模式对话框。所有这些对话框都是以相同的方式从功能区中的按钮单击事件启动的:

SampleForm sample = new SampleForm();
sample.ShowDialog();

到目前为止,一切都很好——当模式窗体出现时,我无法更改单元格选择并单击功能区,直到窗体关闭。

除了一个表单。当显示此表单时,只有excel的上部不活动(即不响应鼠标单击(,但我仍然可以选择工作表中的单元格。另外,当模式打开并且我点击功能区项目时,我听不到嘟嘟声——就像我在其他模式窗口打开时听到的那样。

当这个糟糕的表单打开时,我可以看到this.modal = true加上功能区点击被禁用(没有发出声音(,它实际上是部分模态的。

我的问题是:听起来熟悉吗?在哪里可以找到答案?造成这种行为的原因是什么?

使模态窗口变成部分模态的原因是改变了excel的光标状态。

excelApp.Cursor = XlMousePointer.xlWait;

删除此呼叫修复了问题

最新更新