以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]动态菜单问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=114799) |
||||||||
-- 作者:18523982317 -- 发布时间:2018/2/22 19:01:00 -- [求助]动态菜单问题 Dim Code As String = "" Code = "Dim menu As New " & dr("菜单类型") & "(""" & dr("_Identify") & """)" & vbcrlf Code = Code & "Return menu" Functions.Add("CreateMenu", Code) Functions.Complie() nmenu = Functions.Execute("CreateMenu") 通过上面的代码生成了各种菜单控件,在我的理解中nmenu现在就是个控件了,如果作为RibbonMenu.ComboBox,如何添加下拉菜单? For Each cl As String In DataTables("A0_菜单表").GetComboListString("功能区").Split("|") nmenu.Items.add(cl) Next 这样报错,我就搞不懂了该怎么添加了,帮助没得。 还有添加事件,菜单全局代码里有单击事件还有其他的一些事件,如果不够用,咋整? |
||||||||
-- 作者:有点甜 -- 发布时间:2018/2/22 20:37:00 -- 参考代码
Dim Code As String = "" Functions.Add("CreateMenu", Code) Dim nmenu = Functions.Execute("CreateMenu") |
||||||||
-- 作者:18523982317 -- 发布时间:2018/2/23 8:51:00 -- 不是我要的 combox不是有个enter事件啊,我通常在enter事件里去写下拉列表的筛选代码, 那我在菜单里加入了个RibbonMenu.combox,原来的enter事件里筛选出下拉列表的代码,在那里去写代码?
[此贴子已经被作者于2018/2/23 8:52:05编辑过]
|
||||||||
-- 作者:有点甜 -- 发布时间:2018/2/23 9:20:00 -- 你根本就没有看懂代码。要new一个对象,才能add进去啊
Dim b As New RibbonMenu.Button("abc") |
||||||||
-- 作者:18523982317 -- 发布时间:2018/2/23 11:31:00 -- LockBaseMainForm() \'锁定主窗口 RibbonTabs.Clear Dim dt As DataTable = DataTables("A0_菜单表") For Each dr As DataRow In dt.DataRows Select Case dr("类型") Case "功能区" Dim ntab As RibbonMenu.Tab Dim ngrp As RibbonMenu.Group Dim nmenu As Object If RibbonTabs.Contains(dr("功能区")) Then ntab = RibbonTabs(dr("功能区")) Else ntab = New RibbonMenu.Tab(dr("功能区")) RibbonTabs.Add(ntab) End If If ntab.Groups.Contains(dr("功能组")) Then ngrp = ntab.Groups(dr("功能组")) Else ngrp = New RibbonMenu.Group(dr("功能组")) ntab.Groups.Add(ngrp) End If \'编译一个生成不同菜单的函数 Functions.Remove("CreateMenu") Dim Code As String = "" Code = "Dim menu As New " & dr("菜单类型") & "(""" & dr("_Identify") & """)" & vbcrlf Code = Code & "Return menu" Functions.Add("CreateMenu", Code) Functions.Complie() nmenu = Functions.Execute("CreateMenu") ntab.Text = dr("功能区") ngrp.Text = dr("功能组") nmenu.Text = dr("菜单标题") Select Case dr("菜单类型") Case "RibbonMenu.Button" If dr.IsNull("图片排列") = False Then nmenu.LargeImage =GetImage(dr("图片名称") & ".png") nmenu.TextImageRelation = 1 End If Case "RibbonMenu.ComboBox" For Each cl As String In DataTables("A0_菜单表").GetComboListString("功能区").Split("|") Dim b As New RibbonMenu.Button(cl) nmenu.Items.add(b) Next End Select ngrp.Items.Add(nmenu) \'加入菜单 End Select Next UnLockBaseMainForm() \'解锁主窗口 1、选择框里没有任何下拉列表,我弹窗看了 cl有值 2、我切换会系统菜单 切换不回去,无论通过代码,还是F12,请问是不是把系统菜单都给clear了? 3、combox里面的默认字怎么清除?
[此贴子已经被作者于2018/2/23 11:33:26编辑过]
|
||||||||
-- 作者:有点甜 -- 发布时间:2018/2/23 11:42:00 -- 1、请上传具体事例测试。
2、不能写 RibbonTabs.Clear。
3、默认字指什么?
看懂下面的代码啊
Dim Code As String = "" Functions.Add("CreateMenu", Code) Dim nmenu = Functions.Execute("CreateMenu") |
||||||||
-- 作者:18523982317 -- 发布时间:2018/2/23 12:00:00 -- 1、为什么生成菜单这个例子可以返回系统菜单,我的却不行? 2、选择框那三个字是靠什么属性去掉。 3、选择框的下拉列表要在那里去设置
|
||||||||
-- 作者:18523982317 -- 发布时间:2018/2/23 12:01:00 --
|
||||||||
-- 作者:有点甜 -- 发布时间:2018/2/23 12:22:00 -- LockBaseMainForm() \'锁定主窗口
|
||||||||
-- 作者:18523982317 -- 发布时间:2018/2/23 12:52:00 -- 1、为什么例子里没有Syscmd.Project.OpenUserMenu()也可以返回啊? 2、选择框的下拉列表还是没有啊?
|