Foxtable(狐表)用户栏目专家坐堂 → [求助]为什么我的动态生成菜单代码会生成多余的东西


  共有612人关注过本帖树形打印复制链接

主题:[求助]为什么我的动态生成菜单代码会生成多余的东西

帅哥哟,离线,有人找我吗?
xndd
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:537 积分:4465 威望:0 精华:0 注册:2014/11/26 15:23:00
[求助]为什么我的动态生成菜单代码会生成多余的东西  发帖心情 Post By:2024/11/14 11:58:00 [只看该作者]

先看看生成的菜单,前面多了2个东西一个空白的,一个tab,不知道哪里来的。

图片点击可在新窗口打开查看此主题相关图片如下:111.png
图片点击可在新窗口打开查看

代码用了很久了:

'菜单模块
    Dim cmd As New SQLCommand
    cmd.C
    cmd.CommandText = "s elect * from {菜单表}" 
    Dim dt As DataTable = cmd.ExecuteReader()
    
    Dim drs As List(Of DataRow)
    drs = dt.Select("[功能区] Like '*' and [是否启用] = 1 and 功能子项 is null ", "排序ID")
    
    For Each dr As DataRow In drs
        Dim tab As New RibbonMenu.Tab(dr("功能区"))
        If Not RibbonTabs.Contains(dr("功能区")) Then
            tab.Text = dr("功能区")
            
            RibbonTabs.Add(tab)
        End If
    Next
    
    For Each dr As DataRow In drs
        Dim rg As New RibbonMenu.group(dr("功能组"))
        If Not RibbonTabs(dr("功能区")).groups.Contains(dr("功能组")) Then
            rg.Text = dr("功能组")
            RibbonTabs(dr("功能区")).Groups.Add(rg)
        End If
    Next
    
    For Each dr As DataRow In drs
        
        If dr("项类型") = "RibbonMenu.Separator" Then
            Dim rb As New RibbonMenu.Separator(dr("功能项"))
            RibbonTabs(dr("功能区")).Groups(dr("功能组")).Items.Add(rb)
        Else
            Dim rb As New RibbonMenu.Button(dr("功能项"))
            rb.Text = dr("功能项")
            rb.LargeImage = GetImage(ProjectPath & "Images\" & dr("图标"))
            rb.TextImageRelation = TextImageRelationEnum.ImageAboveText
            RibbonTabs(dr("功能区")).Groups(dr("功能组")).Items.Add(rb)
        End If
    Next

菜单表

图片点击可在新窗口打开查看此主题相关图片如下:222.png
图片点击可在新窗口打开查看


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111410 积分:567120 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/11/14 12:15:00 [只看该作者]

原有的系统菜单是怎么清空的?

 回到顶部
帅哥哟,离线,有人找我吗?
xndd
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:537 积分:4465 威望:0 精华:0 注册:2014/11/26 15:23:00
  发帖心情 Post By:2024/11/14 13:03:00 [只看该作者]

在发布的时候,有一个勾选项,不勾选生成系统菜单

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111410 积分:567120 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/11/14 13:32:00 [只看该作者]

新版本是这样的。生成菜单前,先清空一下

RibbonTabs.Clear

 回到顶部
帅哥哟,离线,有人找我吗?
xndd
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:537 积分:4465 威望:0 精华:0 注册:2014/11/26 15:23:00
  发帖心情 Post By:2024/11/14 13:39:00 [只看该作者]

收到,谢谢

 回到顶部
帅哥哟,离线,有人找我吗?
xndd
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:537 积分:4465 威望:0 精华:0 注册:2014/11/26 15:23:00
  发帖心情 Post By:2024/11/14 13:46:00 [只看该作者]

以下是引用有点蓝在2024/11/14 13:32:00的发言:
新版本是这样的。生成菜单前,先清空一下

RibbonTabs.Clear


--如果这样,在发布时,就不能勾选生成系统菜单,否则一直会报错,弹窗


 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111410 积分:567120 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/11/14 13:49:00 [只看该作者]

如果保留系统菜单,就不要清空了。

 回到顶部
帅哥哟,离线,有人找我吗?
xndd
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:537 积分:4465 威望:0 精华:0 注册:2014/11/26 15:23:00
  发帖心情 Post By:2024/11/14 13:52:00 [只看该作者]

如果勾选生成系统菜单,报错;
如果不勾选生成系统菜单,前面还会有个这个:

图片点击可在新窗口打开查看此主题相关图片如下:111.png
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
cd_tdh
  9楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3223 积分:21401 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2024/11/14 13:58:00 [只看该作者]

左边的应该是:程序菜单 ,用代码隐藏吧,ApplicationMenu.Visible =False,我测试用RibbonTabs.Clear确实清除不了程序菜单


图片点击可在新窗口打开查看此主题相关图片如下:0757.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2024/11/14 14:00:53编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111410 积分:567120 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/11/14 14:02:00 [只看该作者]

随便设计一个自定义菜单。生成菜单的时候调用RibbonTabs.Clear

 回到顶部