我为MS Excel创建了一个简单的AddIn,但是自定义任务窗格出现了问题。
自定义任务窗格控件是用WPF编写的,但每当用户尝试将某些数据输入到之前用鼠标选择的CTP中的文本框字段时,Excel会将焦点转移并将其返回到所选单元格。
我可以阻止此行为吗?
用户需要应用的解决方案是按下键盘上的“Esc”按钮,然后他可以再次选择CTP中的输入控件并写入。
具有上下文菜单的控件也会发生同样的情况。当用户用鼠标右键单击控件时,上下文菜单很快就会显示,焦点将返回到Excel工作表。
如果用户正在主动编辑某个单元格而不是在完成编辑之前无法在CTP中选择这两个控件,但可以访问功能区按钮。
如果适用,请指出现有的解决方案。
答案 0 :(得分:0)
@beaver - 当在任何Pane窗口上禁用所有控件时,Excel秘密窃取焦点;按下 ALT 键结束。纠正这种情况; ALT 然后 ESC 按键。
在课堂上..
Using System.Windows.Forms;
....
在没有控制措施的程序之后
SendKeys.Send("%");
SendKeys.SendWait("{ESC}");
[可选但强烈推荐以获得更好的性能]
....
在您的App.config中
<configuration>
<appSettings>
<add key="SendKeys" value="SendInput"/>
</appSettings>
...