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

来源:互联网 发布:二端口网络z12的参数 编辑:程序博客网 时间:2024/05/17 07:32


    ''' <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

原创粉丝点击