Winforms 和 VSTO Excel ShowDialog() 部分模态
Winforms and VSTO Excel ShowDialog() partly modal
有史以来最奇怪的事情!
我正在开发一个 Excel 加载项,功能区上有一些按钮可以弹出一些模式对话框。所有这些对话框都以相同的方式从功能区中的按钮单击事件启动:
SampleForm sample = new SampleForm();
sample.ShowDialog();
到目前为止一切正常 - 当模态窗体出现时我无法更改单元格 selection 并单击功能区直到窗体关闭。
除了一种形式。
当显示此表单时,只有 excel 的上半部分不活动(即不响应鼠标点击)但我仍然可以 select 工作表中的单元格。另外,当模态打开时我听不到哔声,我点击功能区项目 - 正如我在另一个模态 windows 打开时听到的那样。
当打开这个错误的表单时,我可以看到 this.modal = true
另外,由于功能区点击被禁用(没有发出声音),它实际上是部分模态的。
我的问题是:
听起来很熟悉吗?在哪里寻找答案?这种行为的原因是什么?
使模态 window 变成部分模态的原因是改变了 excel 的光标状态。
excelApp.Cursor = XlMousePointer.xlWait;
删除此调用解决了问题
有史以来最奇怪的事情!
我正在开发一个 Excel 加载项,功能区上有一些按钮可以弹出一些模式对话框。所有这些对话框都以相同的方式从功能区中的按钮单击事件启动:
SampleForm sample = new SampleForm();
sample.ShowDialog();
到目前为止一切正常 - 当模态窗体出现时我无法更改单元格 selection 并单击功能区直到窗体关闭。
除了一种形式。 当显示此表单时,只有 excel 的上半部分不活动(即不响应鼠标点击)但我仍然可以 select 工作表中的单元格。另外,当模态打开时我听不到哔声,我点击功能区项目 - 正如我在另一个模态 windows 打开时听到的那样。
当打开这个错误的表单时,我可以看到 this.modal = true
另外,由于功能区点击被禁用(没有发出声音),它实际上是部分模态的。
我的问题是: 听起来很熟悉吗?在哪里寻找答案?这种行为的原因是什么?
使模态 window 变成部分模态的原因是改变了 excel 的光标状态。
excelApp.Cursor = XlMousePointer.xlWait;
删除此调用解决了问题