gpt4 book ai didi

excel - 独立启用/禁用功能区控件

转载 作者:行者123 更新时间:2023-12-03 00:22:11 26 4
gpt4 key购买 nike

我已经多次寻找解决方案,最接近的解决方案是 Ron de Bruin example但它并不能满足我的需要。

我想做的基本上是两件事

示例:我有 4 个按钮。

Group1 和 tab1 上的 Button1

Group1 和 tab1 上的 Button2

Group2 和 tab2 上的 Button3

Group2 和 tab2 上的 Button4

  1. 当单击功能区控件“Button1”时,它将运行一些代码并在最后禁用“Button1”。

  2. 当单击功能区控件“Button2”时,它将运行一些代码并检查“Button3”和“button4”并设置相反的属性。

如果button3为真,它就会变为假。

如果button4为假,则它变为真。

您能否提供一些指导来解决此问题

最佳答案

好的,所有按钮都有 GetEnabled 事件,因此当功能区激活/更新时 - 事件被触发! (简单)。

此事件的回调函数如下所示:

Sub Button_GetEnabled(control As IRibbonControl, ByRef enabled)
'(enabled = true to enable)
enabled = EnableButtons
End Sub

那么让我们开始吧!在具有回调函数的模块中,您需要一个全局(全局回调) bool 值,例如 EnableButtons

当功能区加载此代码示例时,会将标志设置为 True:

Private Sub OnRib_Load(ribbonUI As IRibbonUI)
Set MyRibbonUI = ribbonUI
EnableButtons = True
End Sub

在每个按钮上,您都需要回调上述 GetEnabled 事件。

之后 - 所有按钮均已启用!那么我们在这里能做什么呢?让我们看看您想要的按钮的 OnAction 回调:

Sub Button_Click(control As IRibbonControl)
EnableButtons = False
MyRibbonUI.Invalidate
'do some stuff - buttons disabled
EnableButtons = True
MyRibbonUI.Invalidate
End Sub

因此,Invalidate 方法“更新”所有控件。您可以尝试 InvalidateControl 所需的控制(由于性能原因,这是比 Invalidate 更好的方法),但我认为更优雅的方法是放置回调和事件仅在您想要的按钮上!

因此,最后,您需要引用功能区、 bool 标志和 _GetEnabled 事件。

More here

关于excel - 独立启用/禁用功能区控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41166091/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com