如何以编程方式创建功能区并向其添加控件?

时间:2014-09-19 10:26:50

标签: c# ms-office ribbon

我想在microsoft office中有一个功能区,我将在其中添加所有加载项。 假设有两个加载项,两个都是功能区上的一个按钮,然后打开一个winform。 用户安装第一个加载项,程序检查已安装的功能区,因为没有,它会添加功能区和按钮,调用加载项功能。

然后用户稍后安装第二个加载项,而不是添加相同的功能区,检查是否已安装了具有相同名称的功能区,如果有,则只将按钮添加到已安装的功能区,如果没有(以某种方式卸载了第一个加载项或其他东西),它会使用按钮添加功能区。

所以我认为在ThisAddin_Startup事件中我实例化了一个“RibbonController”类。 在RibbonController类中,我会检查色带是否存在。 (每个插件都有一个RibbonController类)

由于我在MS Office加载项编程专区中相当新,我需要帮助访问功能区对象并以编程方式创建它(如果之前没有安装它)。

2 个答案:

答案 0 :(得分:0)

我们在工作场所使用Add In Express。它真的很容易使用,并做一切。虽然付了钱。

另请查看this回答。

答案 1 :(得分: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" >
            ....

然后我使用&#34; x设置标签idQ:&#34;前缀所以它将知道命名空间。从使用相同xml结构的每个加载项中,选项卡中的控件将添加到单个选项卡中。