以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  历遍菜单界面  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=120931)

--  作者:lur320
--  发布时间:2018/6/26 15:35:00
--  历遍菜单界面
如何历遍自定义的菜单界面?我需要按照情况改中英文。
这样的代码会报错

For Each c As Winform.Control In basemainform.controls

    Output.Show(c.name)

Next



--  作者:lur320
--  发布时间:2018/6/26 16:00:00
--  
可以通过ribbonmenu来历遍下面的item,那怎么历遍ribbontabs或者groups呢?

Dim rc As RibbonMenu.RibbonItem
Dim dr As DataRow
Dim tas As 
For Each rc In RibbonTabs("功能区1").Groups("newAndHoldSO").Items
    dr=DataTables("masterdata").SQLFind("tableaddress IS NULL")
    If dr Is Nothing Then
        dr=DataTables("masterdata").AddNew
    End If
    dr("tableaddress")=rc.Name
    dr("titleaddress")=rc.Text
Next

--  作者:有点甜
--  发布时间:2018/6/26 16:08:00
--  

参考

 

For Each r As RibbonMenu.Tab In RibbonTabs
    output.show(r.text)
    For Each g As RibbonMenu.Group In r.Groups
        output.show(g.text)
    Next
Next


--  作者:lur320
--  发布时间:2018/6/26 17:02:00
--  
追问下,下面是错在哪里?

Dim rcs As RibbonMenu.ContextCommand
For Each rr As RibbonMenu.ContextMenu In ContextMenus
    For Each gg As RibbonMenu.ContextCommandMenu In rr.Items
        For Each rcs In gg.Items
            dr=DataTables("masterdata").Find("tableaddress IS NULL")
            If dr Is Nothing Then
                dr=DataTables("masterdata").AddNew
            End If
            dr("tableaddress")=rcs.Name
            dr("titleaddress")=rcs.Text
        Next
    Next
Next

--  作者:有点甜
--  发布时间:2018/6/26 17:37:00
--  

For Each rr As RibbonMenu.ContextMenu In ContextMenus
   
    output.show(rr.name)
    For Each gg As object In rr.Items
        gg = ContextMenus(rr.Name)(gg.name)
        If typeOf gg Is RibbonMenu.ContextCommandMenu Then
            For Each rcs As object In gg.Items
                output.show("---" & rcs.Text)
            Next
        Else
            output.show(gg.Text)
        End If
    Next
Next