簡體   English   中英

如何將組添加到多個內置功能區選項卡 (vsto)?

[英]How to add a group to multiple built-in Ribbon tabs (vsto)?

這是 VS2010 + Office 2010 插件。 我想要的只是向多個內置選項卡添加一個按鈕(或按鈕組)。 例如,我的按鈕應該在New Mail Message RibbonNew Appointment Ribbon中都可用。 我嘗試添加一個新選項卡(在 Visual Designer 中),但這似乎不起作用。 按鈕組出現在“新郵件”選項卡上,但不會出現在“約會”選項卡上。 順便說一句,我正在使用以下 ID: TabNewMailMessageTabAppointment

對於其他人來說,我能夠在約會和新郵件消息選項卡上看到我的組的唯一方法是為每個內置選項卡添加一個功能區,然后復制/粘貼所有 UI 和代碼從一個功能區到另一個。 確保為每個內置選項卡選擇正確的 RibbonType(功能區的屬性)。

指定的答案現已過時!

  1. 在 OfficeRibbon 對象上,根據需要為盡可能多的案例設置 RibbonType(例如 Microsoft.Outlook.Explorer 和 Microsoft.Outlook.Mail.Read)。
  2. 添加第一個 Tab 並設置 ControlId.OfficeId(例如 TabMail)
  3. 添加另一個選項卡並設置 ControlId.OfficeId(例如 TabReadMessage)
  4. 在每個選項卡中添加一個組和一個按鈕,並將 Button.Click 事件設置為指向相同的 OnClick 方法

我沒有 Outlook,但我在 Word/Excel/PPT 中使用了以下內容,所以我希望它也能在 Outlook 中使用(未經測試!)。

嘗試添加一個 Ribbon (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;
        }
    }

與上面的答案類似,但不使用 XML,您可以在兩個不同位置添加第二個選項卡的組。

在功能區設計器中,將第二個選項卡添加到功能區並將 ControlID 更改為您希望看到您的組的第二個位置。 然后右鍵單擊原始選項卡中的組並單擊復制。 單擊返回到新選項卡並將組粘貼到那里。 它將復制組中已有的任何內容。 但是,您將不得不重新添加事件。但對我而言,我只是重新使用了已經創建的事件,並且效果很好。 干杯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM