LockBaseMainForm() '锁定主窗口
RibbonTabs.Clear
QAT.Items.Clear
ConfigBar.Items.Clear
Dim drs As List(Of DataRow)
drs = DataTables("菜单表").Select("类型='" & e.sender.text & "'", "_Identify")
For Each dr As DataRow In drs
Select Case dr("类型")
Case "功能区"
Dim ntab As RibbonMenu.Tab
Dim ngrp As RibbonMenu.Group
Dim nmenu As Object
If RibbonTabs.Contains(dr("功能区")) Then
ntab = RibbonTabs(dr("功能区"))
Else
ntab = New RibbonMenu.Tab(dr("功能区"))
RibbonTabs.Add(ntab)
End If
If ntab.Groups.Contains(dr("功能组")) Then
ngrp = ntab.Groups(dr("功能组"))
Else
ngrp = New RibbonMenu.Group(dr("功能组"))
ntab.Groups.Add(ngrp)
End If
'编译一个生成不同菜单的函数
Functions.Remove("CreateMenu")
Dim Code As String = ""
Code = "Dim menu As New " & dr("菜单类型") & "(""" & dr("_Identify") & """)" & vbcrlf
Code = Code & "Return menu"
Functions.Add("CreateMenu", Code)
Functions.Complie()
nmenu = Functions.Execute("CreateMenu")
ntab.Text = dr("功能区")
ngrp.Text = dr("功能组")
nmenu.Text = dr("菜单标题")
ngrp.Items.Add(nmenu) '加入菜单
Case "快速访问栏"
'编译一个生成不同菜单的函数
Functions.Remove("CreateMenu")
Dim Code As String = ""
Code = "Dim menu As New " & dr("菜单类型") & "(""" & dr("_Identify") & """)" & vbcrlf
Code = Code & "Return menu"
Functions.Add("CreateMenu", Code)
Functions.Complie()
Dim nmenu As Object = Functions.Execute("CreateMenu")
nmenu.Text = dr("菜单标题")
If dr("功能区") <> Nothing Then
Dim fdr = dr.DataTable.Find("菜单标题='" & dr("功能区") & "'")
qat.Items(cstr(fdr("_Identify"))).items.Add(nmenu)
Else
QAT.Items.Add(nmenu)
End If
Case "配置栏"
'编译一个生成不同菜单的函数
Functions.Remove("CreateMenu")
Dim Code As String = ""
Code = "Dim menu As New " & dr("菜单类型") & "(""" & dr("_Identify") & """)" & vbcrlf
Code = Code & "Return menu"
Functions.Add("CreateMenu", Code)
Functions.Complie()
Dim nmenu As Object = Functions.Execute("CreateMenu")
nmenu.Text = dr("菜单标题")
ConfigBar.Items.Add(nmenu)
End Select
Next
UnLockBaseMainForm() '解锁主窗口