2

我为 MS Excel 创建了一个简单的插件,但自定义任务窗格有问题。

自定义任务窗格控件是用 WPF 编写的,但是每当用户尝试将一些数据输入到他之前用鼠标选择的 CTP 中的文本框字段时,Excel 都会锁定焦点并将其返回到选定的单元格。

我可以防止这种行为吗?

用户需要应用的解决方案是按键盘上的“Esc”按钮,然后他可以再次选择CTP中的输入控件并对其进行写入。

具有上下文菜单的控件也会发生同样的情况。当用户用鼠标右键单击控件时,上下文菜单很快可见并且焦点返回到 Excel 工作表。

如果用户正在积极编辑某个单元格,则在完成编辑之前他无法选择 CTP 中的两个控件,但可以访问功能区按钮。

请指出我现有的解决方案(如果适用)。

4

1 回答 1

0

@beaver - 当任何窗格窗口上的所有控件都被禁用时,Excel 会偷偷地窃取焦点;最终按下一个ALT键。纠正这种情况;ALT然后ESC按键。

在课堂里..

Using System.Windows.Forms;

....
在没有集中控制的过程之后

SendKeys.Send("%");
SendKeys.SendWait("{ESC}");

[可选但强烈推荐以获得更好的性能]
....
在您的 App.config

<configuration>
  <appSettings>
    <add key="SendKeys" value="SendInput"/>
  </appSettings>
...

于 2016-10-03T21:06:01.857 回答