【菜单授权】获取用户自己定义的菜单名、分组名、按钮名后,设置了可见与可用之后,怎么更新菜单权限呢?
要求同步实现:
在设定之后 点应用 同步更新菜单权限显示
在用户登录之后 自动更新菜单权限
【注意】有自定义用户登录窗体,在用户自定义登录之后,希望能够匹配菜单权限表里面的设置来对应显示用户下的可见菜单项目。

此主题相关图片如下:1.png

已创建菜单权限表 ,格式如上图。
下列代码获取到菜单名 分组名 按钮名
For Each rt As RibbonMenu.Tab In RibbonTabs
For Each rg As RibbonMenu.Group In rt.Groups
For Each rb As Object In rg.Items
Dim dr As DataRow = DataTables("菜单权限").AddNew()
dr("菜单名") = rt.Name
dr("分组名") =rg.Name
dr("按钮名") =rb.Name
Next
Next
Next
有点蓝老师在论坛提供过如下代码 不知道怎么用 在命令窗口运行,直接是所有的菜单都看不见了For i As Integer = 0 To ribbontabs.count - 1
RibbonTabs(i).Visible = False
For j As Integer = 0 To RibbonTabs(i).Groups .count - 1
RibbonTabs(i).Groups (j).Visible = False
Next
Next
For Each dr As DataRow In DataTables("菜单权限表").Select("用户名 = '" & user.name & "' and 菜单名 is not null" )
If dr.IsNull("分组名") Then
RibbonTabs(dr("菜单名")).Visible = dr("可见")
If dr("可见") = True Then
For j As Integer = 0 To RibbonTabs(dr("菜单名")).Groups .count - 1
RibbonTabs(dr("菜单名")).Groups (j).Visible = True
Next
End If
RibbonTabs(dr("菜单名")).Enabled = dr("可用")
ElseIf dr.IsNull("按钮名") Then
RibbonTabs(dr("菜单名")).Visible = dr("可见")
RibbonTabs(dr("菜单名")).Groups(dr("分组名")).Visible = dr("可见")
RibbonTabs(dr("菜单名")).Groups(dr("分组名")).Enabled = dr("可用")
Else
RibbonTabs(dr("菜单名")).Visible = dr("可见")
RibbonTabs(dr("菜单名")).Groups(dr("分组名")).Visible = dr("可见")
RibbonTabs(dr("菜单名")).Groups(dr("分组名")).Items(dr("按钮名")).Visible = dr("可见")
RibbonTabs(dr("菜单名")).Groups(dr("分组名")).Items(dr("按钮名")).Enabled = dr("可用")
End If
Next
[此贴子已经被作者于2018/1/7 16:20:17编辑过]