以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  动态生成菜单  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=11909)

--  作者:blackzhu
--  发布时间:2011/8/16 15:26:00
--  动态生成菜单
Dim b As New RibbonMenu.Button(dr("菜单组件名称"))  

因为菜单控件有很多,所以我加了一个菜单组件类型,我如何替换

 New RibbonMenu.Button

为dr("菜单组件类型")


--  作者:狐狸爸爸
--  发布时间:2011/8/16 15:39:00
--  

select case dr("组件类型")

       case "按钮"

           Dim b As New RibbonMenu.Button(dr("组建名称")

       case "文本框"

           Dim b As New RibbonMenu.TextBox(dr("组建名称")

       .....

 

end Select


--  作者:blackzhu
--  发布时间:2011/8/16 15:49:00
--  
 Select Case dr("菜单组件类型")
        Case dr("菜单组件名称")
            Dim b As New RibbonMenu.Button(dr("菜单组件名称"))
            b.Text= dr("菜单组件名称")
            g.Items.Add(b)
        Case dr("菜单组件名称")
            Dim b As New RibbonMenu.TextBox(dr("菜单组件名称"))
            b.Text= dr("菜单组件名称")
            g.Items.Add(b)
    End Select
 
我在表菜单组件的里面输入:


是这个RibbonMenu.Button 没有添加    加入 button也没有添加,应该写什么?


--  作者:狐狸爸爸
--  发布时间:2011/8/16 15:56:00
--  
在菜单组件类型列输入按钮、文本框之类的。
 
 
Select Case dr("菜单组件类型")
    Case "按钮"
        Dim b As New RibbonMenu.Button(dr("菜单组件名称"))
        b.Text= dr("菜单组件名称")
        g.Items.Add(b)
    Case "文本框"
        Dim b As New RibbonMenu.TextBox(dr("菜单组件名称"))
        b.Text= dr("菜单组件名称")
        g.Items.Add(b)
End Select
[此贴子已经被作者于2011-8-16 15:56:40编辑过]

--  作者:blackzhu
--  发布时间:2011/8/16 16:12:00
--  
明白了!


--  作者:blackzhu
--  发布时间:2011/8/16 16:40:00
--  
For Each dr As DataRow In DataTables("表A").DataRows
    Dim gn As New RibbonMenu.Tab(dr("功能区"))
    If RibbonTabs.Contains(dr("功能区")) Then
        Dim g As New RibbonMenu.Group(dr("功能组"))
        If RibbonTabs(dr("功能区")).Groups.Contains(dr("功能组"))Then
            Select Case dr("菜单组件类型")
                Case "按钮"
                    Dim b As New RibbonMenu.Button(dr("菜单组件名称"))
                    b.Text= dr("菜单组件名称")
                    g.Items.Add(b)
                Case "文本框"
                    Dim b As New RibbonMenu.TextBox(dr("菜单组件名称"))
                    b.Text= dr("菜单组件名称")
                    g.Items.Add(b)
            End Select
        Else
            g.Text = dr("功能组")
            RibbonTabs(dr("功能区")).Groups.Add(g)
        End If
    Else
        gn.Text = dr("功能区") 
        RibbonTabs.Add(gn)
    End If
Next

我这个逻辑错在那儿,判断如果功能区在,就加载功能组,如果功能组在就加载控件,但是功能区和功能组都行,控件不行.

--  作者:blackzhu
--  发布时间:2011/8/16 16:41:00
--  
不对,功能组按钮按两次才行.
--  作者:blackzhu
--  发布时间:2011/8/16 16:41:00
--  
按两次才会加载功能做.
--  作者:狐狸爸爸
--  发布时间:2011/8/16 16:45:00
--  
输入的时候,按顺序,功能区在前面,然后是功能组,然后是各个按钮。
--  作者:blackzhu
--  发布时间:2011/8/16 16:49:00
--  
不能一次搞定的吗?