我已成功创建了一个新标签,并将其放在预先存在的标签旁边。然后我意识到我只有一个按钮,所以将它放在Home选项卡上更有意义(现在)。虽然没有真正开始工作。
我试图遵循指南和走路。我给了我一个XML并将其XML更改为以下内容。
<tabs>
<!--<tab idMso="TabAddIns">-->
<tab idMso="TabHome">
<group id="group1" label="Hazaa!">
<box id="box1" />
</group>
</tab>
</tabs>
当我运行项目时,我没有对UI进行任何更改,所以我猜:
TabHome
错误(至少对于Outlook 2010),idMso
错误(至少对于Outlook 2010)或如何更改功能区? (Outlook 2010 / VSTO / VS 2010 / .NET 4)。
答案 0 :(得分:20)
属性idMso
是正确的,但您想要的标签的ID是TabMail
。您可以在MSDN上找到packed set of Excel-files containing lists of Office 2010 control IDs。然后,如对问题的评论中所述,您的示例XML可能缺少customUI和ribbon-tags。 (免责声明:我没有在Outlook中自定义功能区,只有Word,Excel和PowerPoint,但我猜它们的工作原理相同?)
尝试类似这样的事情:
<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<ribbon>
<tabs>
<tab idMso="TabMail">
<group id="group1" label="Hazaa!">
<box id="box1" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
答案 1 :(得分:2)
如果您只想在现有功能区中显示按钮,请在Visual Studio中https://msdn.microsoft.com/en-us/library/bb608628.aspx#Anchor_2
在您的情况下,将 OfficeId 更改为 TabMail
答案 2 :(得分:0)
编辑。对不起,给了一个dnn链接。你想要办公室,你想要c#。
这是VBA中的StackOverflow答案...... How to get Ribbon custom Tabs IDs?
AccessibleChildren _
Lib "oleacc.dll" _
(ByVal paccContainer As Object, _
ByVal iChildStart As Long, _
ByVal cChildren As Long, _
rgvarChildren As Variant, _
pcObtained As Long) _
As Long
在C#中转换为
[Lib "oleacc.dll"]
Long AccessibleChildren(object paccContainer,
long iChildStart,
long cChildren,
object rgvarChildren,
long pcObtained)...
我从未尝试过,所以不确定它是否有效。
从所有其他文档中,您似乎只是获取了功能区对象,并在其中迭代(使用foreach)通过所有子项
答案 3 :(得分:0)
对于感到沮丧的其他答案似乎都不起作用的人们,请转到功能区本身的属性,并将RibbonType
设置为Microsoft.Outlook.Explorer
(或您要查看的任意上下文)控件)。这是很容易忽略的关键步骤。
然后按照其他说明将OfficeId
设置为TabMail
。
此外,可以在以下位置找到Office 2016 Fluent Control标识符:https://www.microsoft.com/en-us/download/confirmation.aspx?id=50745