>PLATFORM: Office 2019应用:Microsoft字
我们创建了一个显示在后台视图中的自定义选项卡。
但是,我们希望在打开后台视图时在此选项卡上设置焦点。 该选项卡恰好出现在我们想要的位置并正常工作,但我们希望将其选中。
我尝试过什么
public void OnShow(object contextObject)
{
try
{
this.ribbon.ActivateTab("OurCustomTab");
}
catch(Exception e )
{
MessageBox.Show(e.ToString());
}
}
上面的代码返回一条消息,指出我提供的值超出范围。
我需要知道的是如何找到自定义选项卡的控件 ID。
自定义 XML
<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
<commands>
<command idMso="FileSave" onAction="FileSaveOverride"/>
<command idMso="FileSaveAs" onAction="FileSaveAsOverride"/>
</commands>
<backstage onShow="OnShow">
<tab id="OurCustomTab" label="CUSTOM" insertBeforeMso="TabInfo" title="OUR TAB" tag ="OUR" getVisible="IsOURTabVisible" >
<firstColumn>
<group id="OURSave" label="Save" helperText="Performs Save operation for OUR documents">
<primaryItem>
<button id="OurCustomSaveButton" label="Save" imageMso="FileSave" isDefinitive="true" onAction="CustomSaveOverride" />
</primaryItem>
</group>
<group id="OurSaveAs" label="Save As" helperText="Performs Save As operation for OUR documents">
<primaryItem>
<button id="OurCustomSaveAsButton" label="Save As" imageMso="FileSaveAs" isDefinitive="true" onAction="CustomSaveAsOverride" />
</primaryItem>
</group>
</firstColumn>
</tab>
</backstage>
</customUI>
看起来激活选项卡在这种情况下不起作用。
Microsoft活动辅助功能和Microsoft UI 自动化在这里也不起作用。 看起来在调用"OnShow"回调时未加载控件。
我是如何测试这一点的,方法是运行一个单独的可执行文件,该文件能够在后台视图中的自定义选项卡上设置焦点。 相同的代码在 VSTO 外接程序中不起作用。
由于运行单独的可执行文件超出了我们的项目范围,我只是简单地使用SendKeys;不是我最喜欢的选择,但它有效。