首页 > 解决方案 > 单击功能区按钮时禁用多个按钮

问题描述

我有几个按钮是需要同时启用或禁用的 MS 访问应用程序。当其中一个被单击并打开一个表单时,它们都需要设置为禁用。当表单关闭时,它们都需要设置为启用。

对于单击的控件,我没有问题。但我不知道如何引用未点击的那个。

这是我的功能区的代码:

在此处输入图像描述

以及我用来处理 getEnabled 的函数:

在此处输入图像描述

如何同时禁用或启用两个按钮?

标签: vbams-accessribbon

解决方案


您需要使用IRibbonUI.InvalidateIRibbonUI.InvalidateControl方法来为其他控件调用回调。invalidate 方法允许使功能区用户界面的所有控件的缓存值无效。

例如,如果外接程序编写器实现getImage了按钮的回调过程,则调用该函数一次,加载图像,然后如果需要更新图像,则使用缓存的图像而不是调用该过程。此过程将一直存在,直到加载项使用 Invalidate 方法发出缓存值无效的信号,此时,再次调用回调过程并缓存返回响应。然后,加载项可以通过调用 Refresh 方法强制立即更新 UI。

Dim MyRibbon As IRibbonUI 
 
Sub MyAddInInitialize(Ribbon As IRibbonUI) 
 Set MyRibbon = Ribbon 
End Sub 
 
Sub myFunction() 
 MyRibbon.Invalidate() ' Invalidates the caches of all of this add-in's controls 
End Sub

Fluent UI(又名 Ribbon UI)在以下系列文章中有深入描述:


推荐阅读