C# Excel VSTO->;基于另一个功能区按钮隐藏/取消隐藏功能区按钮单击

C# Excel VSTO->;基于另一个功能区按钮隐藏/取消隐藏功能区按钮单击,c#,vsto,excel-2007,C#,Vsto,Excel 2007,我们正在使用VSTO创建Excel 2007加载项。现在我们有一个场景,其中有两个按钮。按钮“A”和按钮“B”。按钮“B”需要根据点击按钮“A”隐藏 但是,由于功能区栏没有动态刷新,我们无法看到功能区栏上的更改 我从一些blod那里听说我们需要使用回调方法来实现同样的功能。如果是这样,我该怎么做呢?以下是我解决问题的方法: 步骤1:使按钮“B”可见错误 第2步:点击按钮“A”上的事件,使其可见为真 我读得太多,弄糊涂了,把简单的问题变成了复杂的问题。两条评论: 1) 为了“强制”刷新功能区,

我们正在使用VSTO创建Excel 2007加载项。现在我们有一个场景,其中有两个按钮。按钮“A”和按钮“B”。按钮“B”需要根据点击按钮“A”隐藏

但是,由于功能区栏没有动态刷新,我们无法看到功能区栏上的更改


我从一些blod那里听说我们需要使用回调方法来实现同样的功能。如果是这样,我该怎么做呢?

以下是我解决问题的方法:

  • 步骤1:使按钮“B”可见错误
  • 第2步:点击按钮“A”上的事件,使其可见为真
我读得太多,弄糊涂了,把简单的问题变成了复杂的问题。

两条评论:

1) 为了“强制”刷新功能区,可以调用ribbon.Invalidate() 如果需要以编程方式启用/禁用按钮或其他项,这可能很有用

2) 在功能区中动态隐藏/显示按钮违反了功能区UI准则,您必须遵守该准则。我不确定它是否也适用于Office插件(或仅适用于独立应用程序),但如果不是这样,我会感到惊讶。
您可以在此处阅读更多内容:

据我所知,您只能使用ribbon.Invalidate,如果您使用的是RibbonXml。另外,如果不允许显示/隐藏,您是否应该使用启用/禁用?您好,您能告诉我您是如何在按钮A的单击事件中找到按钮B的实例的吗?反之亦然??