菜单动态生成及菜单点击事件


    ''' <summary>
    ''' 主菜单加载

    ''' </summary>
    ''' <remarks></remarks>
    Private Sub LoadMenuStrip()

        For i = 0 To dt.Rows.Count - 1
            If dt.Rows(i).Item("FRM_ID_LAST").Trim = "0" Then

                ’topMenuItem 主菜单

                Dim topMenuItem As New ToolStripMenuItem
                topMenuItem.Text = dt.Rows(i).Item("FRM_NAME_C").Trim
                topMenuItem.Tag = dt.Rows(i).Item("FRM_ID").Trim
                ’主菜单添加

                Me.mspMenu.Items.Add(topMenuItem)    

                ’主菜单点击触发事件    
               
AddHandler topMenuItem.Click, AddressOf mspMenuItem_Click  ’委托
                If dt.Rows(i).Item("ROOT_BUN").Trim <> "1" Then

                    ’子菜单加载
                    LoadSubMenu(dt, topMenuItem, dt.Rows(i).Item("FRM_ID").Trim)
                End If
            End If
        Next

    End Sub

 

    ''' <summary>
    ''' 子菜单加载

    ''' </summary>
    ''' <param name="dtTable">记录集</param>
    ''' <param name="topMenuItem">主菜单</param>
    ''' <param name="frmId">id</param>
    ''' <remarks></remarks>
    Private Sub LoadSubMenu(ByVal dtTable As DataTable, ByVal topMenuItem As ToolStripMenuItem, ByVal frmId As String)
        Dim i As Integer
        For i = 0 To dtTable.Rows.Count - 1
            If dtTable.Rows(i).Item("FRM_ID").Trim <> "0" Then
                If dtTable.Rows(i).Item("FRM_ID_LAST").Trim = frmId Then

                    ’subMenuItem 子菜单

                    Dim subMenuItem As New ToolStripMenuItem

                    subMenuItem.Text = dtTable.Rows(i).Item("FRM_NAME_C").Trim
                    subMenuItem.Tag = dtTable.Rows(i).Item("FRM_ID").Trim

                    topMenuItem.DropDownItems.Add(subMenuItem)

                    ’子菜单点击触发事件  
                   
AddHandler subMenuItem.Click, AddressOf mspMenuItem_Click
                    If dtTable.Rows(i).Item("ROOT_BUN").Trim <> "1" Then
                        LoadSubMenu(dtTable, subMenuItem, dtTable.Rows(i).Item("FRM_ID").Trim)
                    End If
                End If
            End If
        Next

    End Sub

 

    Private Sub mspMenuItem_Click(ByVal sender As Object, ByVal e As System.EventArgs)

        For i = 0 To dt.Rows.Count - 1
            If dt.Rows(i).Item("FRM_ID").Trim = sender.Tag Then
                If dt.Rows(i).Item("ROOT_BUN").Trim = "1" Then

                End If
            End If
        Next

    End Sub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值