vba - 单击功能区按钮时禁用多个按钮
问题描述
我有几个按钮是需要同时启用或禁用的 MS 访问应用程序。当其中一个被单击并打开一个表单时,它们都需要设置为禁用。当表单关闭时,它们都需要设置为启用。
对于单击的控件,我没有问题。但我不知道如何引用未点击的那个。
这是我的功能区的代码:
以及我用来处理 getEnabled 的函数:
如何同时禁用或启用两个按钮?
解决方案
您需要使用IRibbonUI.Invalidate或IRibbonUI.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)在以下系列文章中有深入描述:
推荐阅读
- google-apps-script - IMPORTHTML() 在此网页结构中不起作用
- javascript - 在 React 中为有条件渲染的组件设置动画
- python-3.x - 如果数据预处理语句不起作用。请任何人都可以解决这个问题
- python - Python将字符串转换为浮点数会出现错误,将数字显示为字母和数字的混合
- python - 安装 mod_wsgi 时退出状态 1 错误
- javascript - 传递 data-id 在 JS 函数中不起作用
- javascript - 事件侦听器不适用于某些 HTML 元素
- javascript - 如何使用 Javascript 从多个 div 元素中识别视口中的哪个 div 元素(或显示在屏幕上)?
- ruby - 数组.map!从 0 以外的索引开始
- ansible - jinja2 selectattr() 中键的正则表达式匹配