2013-05-13 333 views
1

我需要遍历RibbonPageGroup中所有项目的循环。我试着从各个功能区的项目设置Visibility属性为“true /总是”如何遍历RibbonPageGroup中的DevExpress项目?

For Each rp As RibbonPage In ribbonControl.Pages 
     rp.Visible = True 
      For Each pg As RibbonPageGroup In rp.Groups 
        pg.Visible = True 
        For Each btn As DevExpress.XtraBars.BarButtonItem In pg.?????? 
         btn.Visibility = DevExpress.XtraBars.BarItemVisibility.Always 
       Next 
      Next 
    Next 

回答

2

没有bar items的RibbonPageGroup内。您可以通过RibbonPageGroup.ItemLinks属性迭代bar item links

请参阅Accessing Bar Items and Links文章以获取更多信息。

+0

好的。谢谢,我明白了。循环:对于每个btn作为对象在pg.ItemLinks – 2013-05-13 08:35:23

+0

@NiklasB。我很高兴听到我的帮助对你有帮助。 [你可以接受正确的答案](http://stackoverflow.com/faq#howtoask)。 – DmitryG 2013-05-13 08:38:23

1

你可以做到这一点使用LINQ:

For Each bbi As var In RbpVersion.ItemLinks.Cast(Of BarItemLink)().[Select](Function(x) x.Item) 
    Console.WriteLine(bbi.Caption) 
Next 
0

我有同样的问题。用这段代码对它进行排序。完美的作品:

For Each pagegroup As DevExpress.XtraBars.Ribbon.RibbonPage In rbnSafety.Pages 
    For Each group As DevExpress.XtraBars.Ribbon.RibbonPageGroup In pagegroup.Groups 
     For Each button As DevExpress.XtraBars.BarButtonItem In group.Ribbon.Items.OfType(Of DevExpress.XtraBars.BarButtonItem)() 
     If button.Name <> "rbtnExit" Then 
      button.Enabled = False 
     End If 
     Next 
     For Each button As DevExpress.XtraBars.BarSubItem In group.Ribbon.Items.OfType(Of DevExpress.XtraBars.BarSubItem)() 
      button.Enabled = False 
     Next 
    Next 
Next