在一个功能区中,有多个功能组,每个功能组里都加有不少的状态按钮。希望点击任何一个状态按钮时,其它按钮都被排斥而自动弹起,所以给所有的状态按钮都设置了相同的分组名。
但是测试的时候发现,同一功能组内的状态按钮工作正常;但是,不同功能组内的状态按钮却并不是互相排斥的。
如果每次点击不同功能组中的一个状态按钮,那么有多少个功能组,就有多少个状态按钮呈现 “ 按下 ” 状态。
所以,想在每个状态按钮的 click 事件中设置代码,先分别遍历各个功能组中的所有状态按钮,将其设置成 “ 弹起 ” 状态,再将要点击的动态按钮设置成 “ 按下 ” 状态。
状态按钮C1 中的代码:
Dim itm As RibbonMenu.RibbonItem
For Each itm In RibbonTabs("功能区A").Groups("功能组B1").Items
itm.Pressed = False
Next
For Each itm In RibbonTabs("功能区A").Groups("功能组B2").Items
itm.Pressed = False
Next
RibbonTabs("功能区A").Groups("功能组B1").Items("状态按钮C1").Pressed = True
执行这段代码,说是 itm.Pressed = False 出错,奇怪啊!
不应该吧? 要怎么改呢?
此主题相关图片如下:状态按钮 - 遍历后,使用 pressed 出错.png