首页 文章

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

提问于
浏览
1

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

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

我可以阻止这种行为吗?

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

具有上下文菜单的控件也会发生相同的情况 . 当用户用鼠标右键单击控件时,上下文菜单很快就会显示,焦点将返回到Excel工作表 .

如果用户正在主动编辑某个单元格而不是在完成编辑之前无法在CTP中选择这两个控件,但可以访问功能区按钮 .

如果适用,请指出现有的解决方案 .

1 回答

  • 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>
    ...
    

相关问题