8

这是 VS2010 + Office 2010 插件。我想要的只是将一个按钮(或按钮组)添加到多个内置选项卡。例如,我的按钮应该在New Mail Message RibbonNew Appointment Ribbon中都可用。我尝试添加一个新选项卡(在 Visual Designer 中),但这似乎不起作用。按钮组出现在“新邮件消息”选项卡上,但不在“约会”选项卡上。顺便说一句,我正在使用以下 ID:TabNewMailMessageTabAppointment.

4

4 回答 4

7

对于其他人来说,我能够在约会和新邮件消息选项卡上看到我的组的唯一方法是为每个内置选项卡添加一个功能区,然后复制/粘贴所有 UI 和代码从一根丝带到另一根丝带。确保为每个内置选项卡选择正确的 RibbonType(功能区的属性)。

于 2012-09-25T11:15:07.437 回答
4

指定答案现已过时!

  1. 在 OfficeRibbon 对象上,根据需要为尽可能多的情况设置 RibbonType(例如 Microsoft.Outlook.Explorer 和 Microsoft.Outlook.Mail.Read)。
  2. 添加第一个选项卡并设置 ControlId.OfficeId(例如 TabMail)
  3. 添加另一个选项卡并设置 ControlId.OfficeId(例如 TabReadMessage)
  4. 在每个选项卡中添加一个组和一个按钮,并将 Button.Click 事件设置为指向相同的 OnClick 方法
于 2020-02-14T13:49:38.770 回答
0

与上面的答案类似,但不使用 XML,您可以让组在两个不同的位置添加第二个选项卡。

在功能区设计器中,将第二个选项卡添加到功能区,并将 ControlID 更改为您希望查看组的第二个位置。然后右键单击原始选项卡中的组,然后单击复制。单击返回新选项卡并将组粘贴到那里。它将复制组中已有的任何内容。但是,您必须重新添加事件。但对我来说,我只是重新使用了已经创建的事件并且它工作得很好。干杯。

于 2013-05-14T16:42:14.977 回答
0

我没有 Outlook,但我在 Word/Excel/PPT 中使用了以下内容,所以我希望它也可以在 Outlook 中使用(未经测试!)。

尝试添加一个功能区 (XML) 项,然后添加两个选项卡,其中的按钮看起来相同,调用相同的代码但具有不同的 ID。

XML:

<tab idMso="TabNewMailMessage">
    <group id="MyGroup1" label="My Group1">
        <button id="myButton1" label="Button 1" size="large"  onAction="ButtonOnAction" />
    </group>
</tab>
<tab idMso="TabAppointment">
    <group id="MyGroup2" label="My Group2">
        <button id="myButton2" label="Button 2" size="large"  onAction="ButtonOnAction" />
    </group>
</tab>

C#:

    public void ButtonOnAction(IRibbonControl control)
    {
        switch (control.Id)
        {
            case "myButton1":
            case "myButton2":
                // do something
                Console.Out.WriteLine("Button ID: {0}", control.Id);
                break;
        }
    }
于 2012-09-25T10:53:56.813 回答