2012-09-25 40 views
5

這是VS2010 + Office 2010加載項。我只需要將一個按鈕(或按鈕組)添加到多個內置選項卡。例如,我的按鈕應在新郵件功能區新的預約功能區中可用。我試圖添加一個新選項卡(在視覺設計師),但似乎沒有工作。按鈕組出現在新郵件選項卡上,但不出現在約會選項卡上。順便說一句,我使用以下ID:TabNewMailMessageTabAppointment如何將組添加到多個內置功能區選項卡(vsto)?

回答

4

爲別人拉他們對這個髮型,我能看到兩個約會我的組和新郵件的標籤是唯一的方法通過爲每個內置選項卡添加一個功能區,然後將所有UI和代碼從一個功能區複製/粘貼到另一個功能區。確保爲每個內置選項卡選擇適當的RibbonType(功能區屬性)。

+0

聽起來正確:) – Tangocoder

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; 
     } 
    } 
+0

感謝Olle。我也期望能夠工作,但不幸的是它沒有。我的想法是,這可能是因爲Mail Compose和Appointment是兩個不同的Inspector,因此需要在Ribbon的RibbonType屬性中進行選擇。我甚至試圖在那裏選擇多種色帶類型,但這不起作用。它爲我工作的唯一方法是添加一個新的功能區。請參閱下面的答案。 – dotNET

+0

好的,你發現併發布了答案! –

+0

User @magicnumber通過將'ButtonOnAction'設置爲'public'獲得了工作的答案 - 感謝您的更新! –

0

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

在功能區設計器中,向功能區添加第二個選項卡,並將ControlID更改爲您希望看到您的組的第二個位置。然後右鍵單擊原始選項卡中的組,然後單擊複製。再次點擊新標籤並粘貼組。它將複製組中已有的任何內容。但是,您必須重新添加事件。但對於我而言,我只是重新使用了已創建的事件,並且它完美地工作。乾杯。

相關問題