2014-09-19 41 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

相关问题