以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- [求助] 遍历状态按钮后,Pressed 属性不好用? (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=130360) |
-- 作者:龙潭春早 -- 发布时间:2019/1/19 23:47:00 -- [求助] 遍历状态按钮后,Pressed 属性不好用? 在一个功能区中,有多个功能组,每个功能组里都加有不少的状态按钮。 希望点击任何一个状态按钮时,其它按钮都被排斥而自动弹起,所以给所有的状态按钮都设置了相同的分组名。 但是测试的时候发现,同一功能组内的状态按钮工作正常;但是,不同功能组内的状态按钮却并不是互相排斥的。 如果每次点击不同功能组中的一个状态按钮,那么有多少个功能组,就有多少个状态按钮呈现 “ 按下 ” 状态。 所以,想在每个状态按钮的 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 出错,奇怪啊! 不应该吧? 要怎么改呢? |
-- 作者:有点甜 -- 发布时间:2019/1/20 11:18:00 -- Dim itm As RibbonMenu.RibbonItem
改成
Dim itm As Object |
-- 作者:龙潭春早 -- 发布时间:2019/1/20 18:50:00 -- 还是不对,改后测试,显示这个: |
-- 作者:有点甜 -- 发布时间:2019/1/20 23:06:00 -- 参考代码
Dim itm As object |
-- 作者:龙潭春早 -- 发布时间:2019/1/22 10:44:00 -- 嗯 能用了 不过,有没有什么更简化一些的办法,直接遍历一个功能区里所有功能组中的各个组件,而不用一个个功能组的遍历呢?
|
-- 作者:有点甜 -- 发布时间:2019/1/22 11:07:00 -- 比如
For Each r As RibbonMenu.Tab In RibbonTabs |
-- 作者:龙潭春早 -- 发布时间:2019/1/22 12:08:00 -- 精彩! 对于所有的功能区、功能组、组件,遍历可执行! 不过,对于具体的一个功能区A,却不行,为什么呢? 代码: |
-- 作者:有点甜 -- 发布时间:2019/1/22 12:21:00 -- 参考
For Each g As RibbonMenu.Group In RibbonTabs("功能区A").Groups
|
-- 作者:龙潭春早 -- 发布时间:2019/1/22 13:32:00 -- 嗯 应该直接定义功能组! 多谢啦!
|
-- 作者:龙潭春早 -- 发布时间:2019/1/23 20:53:00 -- 怎么遍历快速访问栏 QAT 里的组件呢? 下面代码说 “Items” 不是 RibbonMenu.QAT 的成员 For Each itm As object In QAT.Itmes output.show(itm.name) Next |