VSTO AddIn for Excel – 如何防止自定义任务窗格失去焦点?

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

自定义任务窗格控件是在WPF中编写的,但是每当用户尝试将某些数据input到之前使用鼠标select的CTP中的文本框字段中时,Excel将使用焦点并将其返回到所选单元格。

我可以防止这种行为?

用户需要应用的解决scheme是按下键盘上的“Esc”button,然后再次selectCTP中的input控件并写入。

具有上下文菜单的控件也是如此。 当用户用鼠标右键点击控件时,上下文菜单很快就可以看到,焦点返回到Excel工作表。

如果用户正在编辑某个单元格,而不能在完成编辑之前selectCTP中的任何一个控件,但可以访问function区button。

请指出我现有的解决scheme,如果适用。

@beaver – 当任何一个窗格窗口中的所有控件都被禁用时,Excel偷偷地偷走了焦点; 最后按下一个ALT键。 为了纠正这种情况; ALT然后按ESC键。

在课堂里..

Using System.Windows.Forms; 

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

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

[可选,但强烈build议更好的性能]
….
在你的App.config中

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