下拉菜单项根据数据库中读出的数据动态生成

Forrest23 2008-08-06 10:20:13
下拉菜单项根据数据库中读出的数据动态生成,文件夹的名字和网页名字都是存在数据库中的,一级子菜单可以实现动态加载,但子子菜单,怎么加载?




收藏夹(主菜单)
|
|
常用网页(文件夹)(子菜单)---csdn(网页)(子子菜单)
---csdn(网页)(子子菜单)
...全文
139 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lx_lhy 2008-08-06
  • 打赏
  • 举报
回复
'**********************************************************************************************************
'功 能:动态创建菜单
'参 数: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
Forrest23 2008-08-06
  • 打赏
  • 举报
回复
用的是menustrip控件
xhan2000 2008-08-06
  • 打赏
  • 举报
回复
用的menu控件?得到Muenitem,动态添加子项就行了

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧