Foxtable(狐表)用户栏目专家坐堂 → [求助]菜单的可用不可用


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

主题:[求助]菜单的可用不可用

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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
[求助]菜单的可用不可用  发帖心情 Post By:2015/8/18 13:29:00 [显示全部帖子]

红袍老师,
    向您求得菜单代码了
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=72355&authorid=9150
   在问您一下 如何使菜单的拉的某一项 不可用  代码 怎么写呢
   类似于 Enable=false/true

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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2015/8/21 17:17:00 [显示全部帖子]

老师,
  这个怎么锁定

Dim tab= e.Form.Controls("TabControl1").Basecontrol
Dim dt As DataTable=Functions.Execute("loading","AS002分类编码方案",0,"基础档案名称='AS012菜单生成'")
Dim dt1 As DataTable=Functions.Execute("loading","AS012菜单生成",0,"1=1")
Dim gz As String = dt.DataRows(0)("编码规则")
For Each p As object In tab.TabPages
    Dim menuStrip As new System.Windows.Forms.MenuStrip()
    Dim ft As String= "(',' + [窗口名称] + ',') Like '%," & p.text & ",%'"
    For Each dr As DataRow In dt1.Select(ft,"编码规则")
        If dr.IsNull("编码规则") = False AndAlso dr("编码规则").Length = val(gz(0)) Then
            Dim tsmi As new System.Windows.Forms.ToolStripMenuItem
            tsmi.name = dr("编码规则")
            tsmi.Text = dr("编码名称")
            menuStrip.Items.Add(tsmi)
            ’tsmi.Enabled = False‘                                       希望菜单,下面的二级项目锁定
            AddHandler tsmi.Click, AddressOf menu_Click
            Functions.Execute("menusetup",tsmi,dt1,gz)
        End If
    Next
    P.Controls.add(menuStrip)
    'menuStrip.Items(9401).Enabled = True 希望菜单,下面的二级项目某个项目不锁定
Next


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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2015/8/21 17:40:00 [显示全部帖子]

红袍老师,
   例子是这个的
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=72508&authorid=0&page=0&star=2

Dim menu = e.Form.baseform.controls("菜单") 窗口4这句不知怎么写
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:菜单 (1).table



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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2015/8/21 17:48:00 [显示全部帖子]

哦 老师 另外一个窗口 是为了测试 可能把您误解了;
这块就是想把某个菜单下下级 给他ENABLE了

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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2015/8/21 17:54:00 [显示全部帖子]

太棒了 谢谢老师 周末愉快

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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2015/9/2 10:40:00 [显示全部帖子]

红袍老师,
  还得麻烦您,我试着想要循环菜单,让所有的菜单变成不可用,用下面代码可以实现


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

'循环菜单全部确认为false开始
Dim bmgzname As New List(Of String)
Dim drs1 As List(Of DataRow)=DataTables("AS012菜单生成").Select("[是否末级]=true")‘递归只选择末级
For Each dr As DataRow In drs1
    bmgzname.Add(dr("编码规则"))
Next
Dim i1 As Integer
Dim cdname As String
For i1=0 To bmgzname.Count-1
    cdname=""
    cdname=bmgzname(i1)
    Dim menu = e.Form.controls("TabControl1").Basecontrol.controls("系统管理").Controls("系统管理")
    Dim item = menu.Items(cdname.SubString(0,2)).DropDownItems(cdname)
    If item.DropDownItems.Count = 0 Then
        item.Enabled = False
    End If
Next
'循环菜单全部确认为false结束


有没有其他的方式或是代码?

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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2015/9/2 12:30:00 [显示全部帖子]

o 老师 我的意思 上述代码 对二级 没问题 如果是三级 就有难度了 
我的意思 想问问 您 没有好的代码 直接循环菜单的命令

例如 FOR EACH CD as menu.Item  IN menu
           IF CD.NAME="9401"
...
             END IF
        next
[此贴子已经被作者于2015/9/2 12:30:38编辑过]

 回到顶部