Foxtable(狐表)用户栏目专家坐堂 → [求助]通过TopicBar怎么获取到上层NavBar的NavPage


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

主题:[求助]通过TopicBar怎么获取到上层NavBar的NavPage

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


加好友 发短信
等级:幼狐 帖子:109 积分:1008 威望:0 精华:0 注册:2015/11/3 13:58:00
[求助]通过TopicBar怎么获取到上层NavBar的NavPage  发帖心情 Post By:2017/1/22 14:47:00 [只看该作者]

我用NavBar嵌套TopicBar做导航功能,要实现权限控制TopicLink的显示,如果TopicBar中没有可访问的topiclink,对应NavBar的NavPage也不显示,怎么可以通过topicbar获取到上层的NavPage对象,从而控制是否显示

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


加好友 发短信
等级:狐精 帖子:3360 积分:24792 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2017/1/22 15:43:00 [只看该作者]

做一个表 动态生成导航 像我这样

 

 


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

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

 

这里面的TopicLink 和page都是根据权限动态生成的 每个人看到的不一样

[此贴子已经被作者于2017/1/22 15:44:42编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/22 18:15:00 [只看该作者]

 这样写

 

Dim npg As WinForm.NavPage = e.Sender.parent
msgbox(npg.ButtonText)


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


加好友 发短信
等级:幼狐 帖子:109 积分:1008 威望:0 精华:0 注册:2015/11/3 13:58:00
  发帖心情 Post By:2017/3/3 14:54:00 [只看该作者]

以下是引用有点色在2017/1/22 18:15:00的发言:

 这样写

 

Dim npg As WinForm.NavPage = e.Sender.parent
msgbox(npg.ButtonText)


老师,我是想在窗口加载的时候,根据权限设置,来控制NavPage是否显示; 如果NavPage内的TopicBar是显示的则设置NavPage显示,否则不显示,我现在通过很笨的方法实现了,如果可以通过TopicBar找到包含它的NavPage就简单了。


Dim nb As WinForm.NavBar = e.Form.Controls("NavBar1")


Dim tb_base As WinForm.TopicBar = e.Form.controls("tb_base")



npVisible = False

For Each tp As WinForm.TopicPage In tb_base.Pages

    tpVisible=False

    For Each tl As WinForm.TopicLink In tp.Links        

        boolVisible = Functions.Execute("CheckRight",tl.name) --返回true或False

        If boolVisible = True AndAlso tpVisible=False Then

            tpVisible = True            

        End If

        tl.Visible = boolVisible

    Next

    If tpVisible=True AndAlso npVisible=False Then

        npVisible=True

    End If

    tp.Visible=tpVisible

Next

For Each np As WinForm.NavPage In nb.NavPages

    If np.Name="np_base" Then

        np.Visible=npVisible

    End If   

Next



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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/3 17:57:00 [只看该作者]

直接写不就行了?

 

Dim tb_base As WinForm.TopicBar = e.Form.controls("tb_base")

Dim npg As WinForm.NavPage = tb_base.parent
npg.Visible = tb_base.Visible

[此贴子已经被作者于2017/3/3 17:56:54编辑过]

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


加好友 发短信
等级:幼狐 帖子:109 积分:1008 威望:0 精华:0 注册:2015/11/3 13:58:00
  发帖心情 Post By:2017/3/4 10:20:00 [只看该作者]

以下是引用有点色在2017/3/3 17:57:00的发言:

直接写不就行了?

 

Dim tb_base As WinForm.TopicBar = e.Form.controls("tb_base")

Dim npg As WinForm.NavPage = tb_base.parent
npg.Visible = tb_base.Visible

[此贴子已经被作者于2017/3/3 17:56:54编辑过]


tb_base.parent 是winform.SplitPanel
tb_base.parent.parent 是空
 请老师指点。。。



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


加好友 发短信
等级:超级版主 帖子:110562 积分:562700 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/3/4 11:57:00 [只看该作者]

按照你4楼的方式处理吧


 回到顶部