2014-09-19 58 views
1

我想在Microsoft Office中擁有一個功能區,其中我將擁有所有的加載項。 假設有2個加載項,都是功能區上的一個按鈕,然後打開一個winform。 用戶安裝第一個加載項,程序檢查已安裝的功能區,因爲沒有任何功能,它會添加功能區和調用加載項功能的按鈕。如何以編程方式創建功能區並向其添加控件?

然後用戶稍後安裝第二個加載項,它不是添加相同的功能區,而是檢查是否已經安裝了同名的功能區,如果有,它只會將按鈕添加到已經存在的功能區如果沒有(不知何故,第一個加載項被卸載或某事),它添加功能區的按鈕。

所以我認爲在ThisAddin_Startup事件中我實例化一個「RibbonController」類。 在RibbonController類中,我會檢查色帶的存在。 (每個插件都會有一個RibbonController類)

由於我在MS Office外接程序設計專區中相當新,我需要幫助訪問Ribbons對象並以編程方式創建它,如果它沒有安裝在前面的話。

回答

0

我爲每個插件創建了一個Ribbon.xml,它具有相同的結構。 我已經在每個ribbon.xml中設置了一個「名稱空間」,這將有助於將控件添加到相同的選項卡中。

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load" xmlns:x="NAMESPACE FOR EVERY TAB"> //the namespaces abreviation is "x" 
    <ribbon> 
     <tabs> 
      <tab idQ="x:tab1" label="CommonTab" > 
      .... 

然後我用「x:」前綴設置標籤idQ,以便知道命名空間。從使用相同xml結構的每個加載項中,該選項卡的控件將被添加到單個選項卡中。

0

我們在我們的工作場所使用Add In Express。它非常易於使用,並且可以做所有事情。它是付費的。

也請看看this的答案。

+0

它可以做我要求的完全一樣的東西嗎? 我真的很喜歡沒有任何第三方的東西,但如果這是唯一的方法,我必須說服我的老闆購買它。 – Laureant 2014-09-20 08:06:27

+0

它可以做更多。你可以自己做,但你不能擊敗價格。只需450美元即可獲得讓您的生活更輕鬆的工具。我不會爲加入快車工作,但是因爲我在工作場所使用它們時非常喜歡這個工具。 – Mayank 2014-09-20 20:16:04

+0

謝謝Mayank! 事情是,我真的很想知道一個更基本的方法,沒有第三方應用 – Laureant 2014-09-22 07:21:04

相關問題