首页 新闻 会员 周边

RibbonUI中怎么实时刷新xml文件

0
悬赏园豆:5 [已解决问题] 解决于 2022-02-24 13:16

设计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控件呢?这个应该怎么获取?

森林之路的主页 森林之路 | 菜鸟二级 | 园豆:203
提问于:2022-02-11 08:55
< >
分享
最佳答案
0

通过询问大神,参考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;
    }
森林之路 | 菜鸟二级 |园豆:203 | 2022-02-24 13:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册