Foxtable(狐表)用户栏目专家坐堂 → 菜单编辑器问题


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

主题:菜单编辑器问题

帅哥哟,离线,有人找我吗?
狐表(小白)
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:368 积分:3967 威望:0 精华:0 注册:2019/9/17 10:06:00
菜单编辑器问题  发帖心情 Post By:2019/12/16 11:46:00 [只看该作者]


老师,你好,由窗口菜单编辑器设计的“主菜单”下类型为MenuItem的最底层子项,在窗口ItemClick代码下添加什么代码,可以做到像窗口目录树双击事件代码(如下)那样,在控件页面集合新增并打开事先做的对应窗口?谢谢!

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

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

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


NodeMouseDoubleClick:
If e.Node.Level = 1 Then
Dim t As WinForm.TabControl = Forms("敏捷系统框架").Controls("TabControl1")
Dim p = t.TabPages(e.Node.Text)
If p IsNot Nothing Then
    t.SelectedPage = p
    Return
End If
p = t.TabPages.Add(e.Node.Text ,e.Node.Text)
Forms(e.Node.Text).OPEN(-1000,-1500)

Forms(e.Node.Text).baseform.Dock = System.Windows.Forms.DockStyle.Fill
Forms(e.Node.Text).baseform.TopLevel = False
Forms(e.Node.Text).baseform.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None
p.Controls.Add(Forms(e.Node.Text).baseform)
t.SelectedPage = p
    Forms(e.Node.Text).Show()
End If
[此贴子已经被作者于2019/12/16 12:01:45编辑过]

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


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

参考:http://www.foxtable.com/webhelp/topics/3112.htm

e.Node.Text改为e.StripItem.Text

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


加好友 发短信
等级:小狐 帖子:368 积分:3967 威望:0 精华:0 注册:2019/9/17 10:06:00
  发帖心情 Post By:2019/12/16 14:04:00 [只看该作者]

谢谢老师!但是我想不按照帮助那样对每一个子项按钮都进行判断,只是打开子项按钮对应的窗口,具体操作都由窗口控件的代码执行,如何让系统判断我点击的不是“主菜单”的第一层SplitButton类型的按钮,而是最底层的子项,不然第一点击SplitButton类型的按钮进行下拉选择时,系统就报错判断有没有对应的窗口!谢谢!代码如下:

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

ItemClick:
If e.StripItem.Items IsNot Nothing Then
    Dim t As WinForm.TabControl = Forms("敏捷系统框架").Controls("TabControl1")
    Dim p = t.TabPages(e.StripItem.Text)
    If p IsNot Nothing Then
        t.SelectedPage = p
        Return
    End If
    p = t.TabPages.Add(e.StripItem.Text ,e.StripItem.Text)
    Forms(e.StripItem.Text).OPEN(-1000,-1500)
    
    Forms(e.StripItem.Text).baseform.Dock = System.Windows.Forms.DockStyle.Fill
    Forms(e.StripItem.Text).baseform.TopLevel = False
    Forms(e.StripItem.Text).baseform.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None
    p.Controls.Add(Forms(e.StripItem.Text).baseform)
    t.SelectedPage = p
    Forms(e.StripItem.Text).Show()
End If
[此贴子已经被作者于2019/12/16 14:04:30编辑过]

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


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

if e.Strip.text= “主菜单” andalso e.StripItem.Items.count = 0 then
上面的代码
end if

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


加好友 发短信
等级:小狐 帖子:368 积分:3967 威望:0 精华:0 注册:2019/9/17 10:06:00
  发帖心情 Post By:2019/12/16 20:14:00 [只看该作者]

谢谢老师!不过代码报错!我把text改成name就行了!
if e.Strip.name = “主菜单” andalso e.StripItem.Items.count = 0 then

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


加好友 发短信
等级:小狐 帖子:368 积分:3967 威望:0 精华:0 注册:2019/9/17 10:06:00
  发帖心情 Post By:2019/12/16 21:04:00 [只看该作者]


[此贴子已经被作者于2019/12/17 8:07:10编辑过]

 回到顶部