Winforms和VSTO Excel ShowDialog()部分为模态

时间:2018-11-21 16:34:28

标签: c# winforms vsto excel-addins winforms-interop

有史以来最奇怪的事情!

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

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

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

除了一种形式。 当显示此表单时,仅excel的上部未处于活动状态(即,未响应鼠标单击),但我仍然可以在工作表中选择单元格。另外,模态打开时,我听不到蜂鸣声,而我单击功能区项目,就像其他模态窗口打开时听到的一样。

打开此错误表格后,我会看到this.modal = true加上由于禁用了功能区单击(不发出声音),实际上是部分模式的。

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

1 个答案:

答案 0 :(得分:0)

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

QStandardItem

删除此呼叫已解决问题