设计Excel选项卡的CustomUI.xml文件中有一个group 标签定义了visible属性,<group id="testGroup" visible="true">,运行时修改visible的值,怎么实时刷新?在excel选项卡中看不到这个group?
程序启动的时候才会自动加载CustomUI.xml文件,启动之后用的就一直是第一次加载的内容,所以修改CustomUI.xml文件没有用。
我用的是C#,引用的Microsoft.Office.Interop.Excel包,
那如果通过Excel.Application获取Ribbon控件呢?这个应该怎么获取?
通过询问大神,参考vba的写法找到了方法,自己解决一下!
项目背景是使用ExcelDna,进行excel插件开发,使用的C#语言,
命名空间用到了
using ExcelDna.Integration;
using ExcelDna.Integration.CustomUI;
在Custom.xml文件中添加回调函数getVisible
<group id="InstitutionGroup" label="InstitutionGroup" getVisible="InstitutionGroup_getVisible"></group>
在RibbonUI中写回调方法
private bool GroupIsVisible;
public void ribbonLoaded(IRibbonUI ribbon)
{
//默认隐藏
GroupIsVisible = false;
customRibbon = ribbon;
}
public void OnLogin(IRibbonControl control)
{
try
{
string userName = Helper.PublicHelper.GetConfigValue("userName");
if (userName == "123")
{
//用户有权限的时候显示
GroupIsVisible = true;
//使所有用户界面上的控件失效并随后刷新 UI。
customRibbon.Invalidate();
}
else
{
GroupIsVisible = false;
customRibbon.Invalidate();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
public bool InstitutionGroup_getVisible(IRibbonControl control)
{
return GroupIsVisible;
}