'**********************************************************************************************************
'功 能:动态创建菜单
'参 数:MenuScripItem - 一个MenuStrip对象
'返回值:NULL
'**********************************************************************************************************
Public Sub CreateMenu()Sub CreateMenu(ByVal MenuScripItem As MenuStrip)
Dim IsTopMenu As Boolean
Dim IsSeparator As Boolean = False
Dim TopMenuItemIndex As Integer = 0
Dim SubMenuItemIndex As Integer = -1
Dim dt As DataTable = SharedClass.GetDataHelperConfig(DataHelperConfigTableName.DropDownMenu)
Dim dr As DataRow
For Each dr In dt.Rows
If IsNumeric(dr("IsSeparator")) Then
IsSeparator = dr("IsSeparator")
End If
Dim MenuItem As ToolStripMenuItem = New ToolStripMenuItem() '创建菜单项
AddHandler MenuItem.Click, New EventHandler(AddressOf MenuClick.MainMenu_Click)
MenuItem.Text = dr("Text").ToString()
MenuItem.ToolTipText = dr("ToolTipText").ToString
MenuItem.Name = dr("Name").ToString
If File.Exists(dr("Image").ToString) Then
MenuItem.Image = Image.FromFile(dr("Image"))
End If
If dr("Visible").ToString.Length > 0 Then
MenuItem.Visible = Boolean.Parse(dr("Visible"))
End If
If IsNumeric(dr("ShortcutKeys")) Then
MenuItem.ShortcutKeys = Integer.Parse(dr("ShortcutKeys"))
End If
MenuItem.ShowShortcutKeys = True
If IsNumeric(dr("IsTopMenu")) Then
IsTopMenu = CBool(dr("IsTopMenu"))
Else
IsTopMenu = False
End If
If IsNumeric(dr("TopMenuItemIndex")) Then
TopMenuItemIndex = dr("TopMenuItemIndex")
End If
If IsNumeric(dr("SubMenuItemIndex")) Then
SubMenuItemIndex = dr("SubMenuItemIndex")
End If
If dr("ParentID") = 0 Then
If IsTopMenu Then
If TopMenuItemIndex < 6 Then
TopMenuItemIndex = 6
End If
MenuScripItem.Items.Insert(TopMenuItemIndex, MenuItem)
Else
Dim Sep As New ToolStripSeparator
If SubMenuItemIndex = -1 Then
If IsSeparator Then
CType(MenuScripItem.Items(TopMenuItemIndex), ToolStripMenuItem).DropDownItems.Add(Sep)
Else
CType(MenuScripItem.Items(TopMenuItemIndex), ToolStripMenuItem).DropDownItems.Add(MenuItem)
End If
Else
If IsSeparator Then
CType(MenuScripItem.Items(TopMenuItemIndex), ToolStripMenuItem).DropDownItems.Insert(SubMenuItemIndex, Sep)
Else
CType(MenuScripItem.Items(TopMenuItemIndex), ToolStripMenuItem).DropDownItems.Insert(SubMenuItemIndex, MenuItem)
End If
End If
End If
CreateSubMenu(MenuItem, Convert.ToInt32(dr("MenuID")), dt)
End If
Next
End Sub