Foxtable(狐表)用户栏目专家坐堂 → [求助] 遍历状态按钮后,Pressed 属性不好用?


  共有2999人关注过本帖树形打印复制链接

主题:[求助] 遍历状态按钮后,Pressed 属性不好用?

美女呀,离线,留言给我吧!
龙潭春早
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:676 积分:4895 威望:0 精华:0 注册:2018/3/22 16:05:00
[求助] 遍历状态按钮后,Pressed 属性不好用?  发帖心情 Post By:2019/1/19 23:47:00 [显示全部帖子]

在一个功能区中,有多个功能组,每个功能组里都加有不少的状态按钮。
希望点击任何一个状态按钮时,其它按钮都被排斥而自动弹起,所以给所有的状态按钮都设置了相同的分组名。

但是测试的时候发现,同一功能组内的状态按钮工作正常;但是,不同功能组内的状态按钮却并不是互相排斥的。
如果每次点击不同功能组中的一个状态按钮,那么有多少个功能组,就有多少个状态按钮呈现 “ 按下 ” 状态。

所以,想在每个状态按钮的 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
图片点击可在新窗口打开查看




 回到顶部
美女呀,离线,留言给我吧!
龙潭春早
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:676 积分:4895 威望:0 精华:0 注册:2018/3/22 16:05:00
  发帖心情 Post By:2019/1/20 18:50:00 [显示全部帖子]

还是不对,改后测试,显示这个:

图片点击可在新窗口打开查看此主题相关图片如下:状态按钮 - 遍历后用 pressed 出错 2.png
图片点击可在新窗口打开查看


 回到顶部
美女呀,离线,留言给我吧!
龙潭春早
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:676 积分:4895 威望:0 精华:0 注册:2018/3/22 16:05:00
  发帖心情 Post By:2019/1/22 10:44:00 [显示全部帖子]

嗯 能用了

不过,有没有什么更简化一些的办法,直接遍历一个功能区里所有功能组中的各个组件,而不用一个个功能组的遍历呢?

 回到顶部
美女呀,离线,留言给我吧!
龙潭春早
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:676 积分:4895 威望:0 精华:0 注册:2018/3/22 16:05:00
  发帖心情 Post By:2019/1/22 12:08:00 [显示全部帖子]

精彩!

对于所有的功能区、功能组、组件,遍历可执行!

不过,对于具体的一个功能区A,却不行,为什么呢?

代码:

For Each r As RibbonMenu.Tab In RibbonTabs("功能区A")
    output.show(r.text)
    For Each g As RibbonMenu.Group In r.Groups
        output.show(g.text)
        For Each c As object In g.Items
            output.show(c.name)
        Next
    Next
Next

出错:

图片点击可在新窗口打开查看此主题相关图片如下:状态按钮 - 遍历后 出错 3.png
图片点击可在新窗口打开查看


 回到顶部
美女呀,离线,留言给我吧!
龙潭春早
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:676 积分:4895 威望:0 精华:0 注册:2018/3/22 16:05:00
  发帖心情 Post By:2019/1/22 13:32:00 [显示全部帖子]

嗯 应该直接定义功能组!

多谢啦!

 回到顶部
美女呀,离线,留言给我吧!
龙潭春早
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:676 积分:4895 威望:0 精华:0 注册:2018/3/22 16:05:00
  发帖心情 Post By:2019/1/23 20:53:00 [显示全部帖子]

怎么遍历快速访问栏 QAT 里的组件呢?

下面代码说 “Items” 不是 RibbonMenu.QAT 的成员

For Each itm As object In QAT.Itmes
      output.show(itm.name)
Next

 回到顶部
美女呀,离线,留言给我吧!
龙潭春早
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:676 积分:4895 威望:0 精华:0 注册:2018/3/22 16:05:00
  发帖心情 Post By:2019/1/23 22:50:00 [显示全部帖子]

上面这段代码,和 10楼 的代码就差在 items 和 Items。

这里,还受 i 的大小写影响吗?

 回到顶部