我无法在Ribbon类的运行时向下拉控制器添加项目。 但是,看起来很多主题,甚至msdn使用Globals类属性来解决它。
https://msdn.microsoft.com/en-us/library/bb772088.aspx
这个msdn页面上的第一个例子对我不起作用。我无法访问dropDown或任何其他控制器(按钮,组合框等)。
这是我的.xml文件:
<?xml version="1.0" encoding="utf-8" ?>
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" >
<ribbon>
<tabs>
<tab id="LFET" label="LFET(new)">
<group id="Data" label="Data">
<dropDown id="DropdownList" label="Dropdownlist1" visible="true">
</dropDown>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
我正在尝试访问dropDown项目的.cs:
namespace TEST
{
[ComVisible(true)]
public class TESTRibbon : Office.IRibbonExtensibility
{
private Office.IRibbonUI ribbon;
public void DropdownList()
{
//No way to access my custom ribbon like that.
Globals.Ribbons.Ribbon.Dropdownlist1.Items.Add();
}
}
}
此致
答案 0 :(得分:1)
我知道我直接操纵色带时遇到了问题。有一件事可能解决它是Invalidate功能区。
或者,您可以将其设置为动态,并使值来自代码。我在我的Word加载项中执行此操作,它工作正常。如果您更改了值,则可能必须在之后使其无效(我在第一次设置后不会更改它。)
<dropDown id="mycustomid" showLabel="false" onAction="onAction" getSelectedItemIndex="getSelected"
getItemCount="getCount" getItemID="getID" getItemLabel="getLabel" getEnabled="getEnabled"
screentip="whatever" supertip="whatever" />
public void onAction(IRibbonControl control, string id, int index)
{
}
public int getSelected(IRibbonControl control)
{
}
public int getCount(IRibbonControl control)
{
}
public string getID(IRibbonControl control, int index)
{
}
public string getLabel(IRibbonControl control, int index)
{
}