以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于菜单事件的StripItem参数  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=86545)

--  作者:hqy168168
--  发布时间:2016/6/20 12:44:00
--  关于菜单事件的StripItem参数
新建了一个“主菜单”,菜单有“文件”、“编辑”,“选项”等项目,其中:
1、“文件”项目下有子项目“项目1”、“项目2”、“项目3”
2、“编辑”项目下也有子项目“项目1”、“项目2”、“项目3”

目的:想点击子项目“项目1”执行相应操作
问题:如何通过菜单e参数StripItem判断是点击了“文件”项目下的“项目1”还是点击了“编辑”项目下的子项目“项目1”

感谢解答

--  作者:狐狸爸爸
--  发布时间:2016/6/20 14:47:00
--  

参考:

http://www.foxtable.com/help/topics/3222.htm

 

 

if e.Strip.Name = "文件" Then

    if e.StripItem.Name = "项目1" Then

    End if

End if

if e.Strip.Name = "编辑" Then

    if e.StripItem.Name = "项目1" Then

    End if

End if


--  作者:hqy168168
--  发布时间:2016/6/20 15:16:00
--  
通过测试,没有反应

if e.Strip.Name = "文件" Then

    if e.StripItem.Name = "项目1" Then

         MessageBox.Show("11")

    End if

End if

if e.Strip.Name = "编辑" Then

    if e.StripItem.Name = "项目1" Then

       MessageBox.Show("21")

    End if

End if


教程不是说:e.Strip 触发的是菜单吗?e.Strip.Name = "文件" 中的"文件" 是主菜单下的项目哦

感谢


--  作者:狐狸爸爸
--  发布时间:2016/6/20 15:29:00
--  

这个肯定有效的,应该是你的标题是文件,名称不是文件,将代码中的Name改为Text看看。

或者你用MessageBox显示一下Name什么,就一目了然了。


--  作者:hqy168168
--  发布时间:2016/6/20 15:59:00
--  
查看了一下,名称和标题都是“文件” “编辑”
将代码改为后测试:

\'if e.Strip.Name = "文件" Then

    if e.StripItem.Name = "项目1" Then

         MessageBox.Show("11")

    End if

\'End if

if e.Strip.Name = "编辑" Then

    if e.StripItem.Name = "项目1" Then

       MessageBox.Show("21")

    End if

End if


无论点击项目“文件” 下的子项目”项目1“   或是  点击项目“编辑”下的子项目”项目1“,测试结果都是”11“

我个人还是认为,e.Strip.Name = "文件" 这条有问题,因为e.Strip.Name表示的菜单名称“主菜单”,不是表示菜单下的项目名称

请指教,提问有点多,请不厌其烦的指点,先感谢


--  作者:狐狸爸爸
--  发布时间:2016/6/20 16:01:00
--  

那就区分菜单项目的名称吧,Strip返回的主菜单的名称,不是文件、编辑这些菜单的名称。