以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  导航栏 的页面指向问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=23071)

--  作者:silentwind
--  发布时间:2012/8/31 19:56:00
--  导航栏 的页面指向问题

请教一个navbar(导航栏)和tapcontrol( 页面集合)使用的问题。

 


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

我设计了一个窗口,用导航栏上页面 指向 不同的几个页面集合,我的代码是

 

Dim bar As WinForm.NavBar = e.sender
Select Case bar.SelectedPage.ButtonText
    Case "订单明细"
        e.Form.Controls("mtab").Visible = False  ‘(mtab,ctab,vtab,stab,ftab,otab 都是页面集合,我改了显示名称)
        e.Form.Controls("ctab").Visible = False
        e.Form.Controls("vtab").Visible = False
        e.Form.Controls("stab").Visible = False
        e.Form.Controls("ftab").Visible = False
        e.Form.Controls("otab").Visible = True
    Case "产品"
        e.Form.Controls("otab").Visible = False
        e.Form.Controls("ftab").Visible = False
        e.Form.Controls("ctab").Visible = False
        e.Form.Controls("vtab").Visible = False
        e.Form.Controls("stab").Visible = False
        e.Form.Controls("mtab").Visible = True     
    Case "外商"
        e.Form.Controls("mtab").Visible = False
        e.Form.Controls("ftab").Visible = False
        e.Form.Controls("otab").Visible = False
        e.Form.Controls("vtab").Visible = False
        e.Form.Controls("stab").Visible = False
        e.Form.Controls("ctab").Visible = True
    Case "供货商"
        e.Form.Controls("mtab").Visible = False
        e.Form.Controls("ftab").Visible = False
        e.Form.Controls("otab").Visible = False
        e.Form.Controls("ctab").Visible = False
        e.Form.Controls("stab").Visible = False
        e.Form.Controls("vtab").Visible = True
    Case "货运订舱"
        e.Form.Controls("mtab").Visible = False
        e.Form.Controls("ftab").Visible = False
        e.Form.Controls("otab").Visible = False
        e.Form.Controls("ctab").Visible = False
        e.Form.Controls("vtab").Visible = False
        e.Form.Controls("stab").Visible = True
    Case "财务处理"
        e.Form.Controls("mtab").Visible = False
        e.Form.Controls("stab").Visible = False
        e.Form.Controls("otab").Visible = False
        e.Form.Controls("ctab").Visible = False
        e.Form.Controls("vtab").Visible = False
        e.Form.Controls("ftab").Visible = True
End Select

 

我自己感觉很麻烦,有没有什么办法可以简化。

 

另外: 我不知道是否可以将以上的TAPCONTROL 做成一个一个窗口(不和导航栏在主窗口里),用控件或者代码在主窗口中相应位置处

          导入这些TAPCONTROL 的窗口,这样编辑文件会比较简单。

 

          我这么想是否可以?

[此贴子已经被作者于2012-8-31 19:56:41编辑过]

--  作者:jianjingmaoyi
--  发布时间:2012/8/31 20:00:00
--  
你隐藏页面 用代码切换不行吗?
--  作者:silentwind
--  发布时间:2012/8/31 20:11:00
--  关联表 中的数据整理
请教如何切换呢?
--  作者:silentwind
--  发布时间:2012/9/1 7:29:00
--  

恳请高手解答。


--  作者:狐狸爸爸
--  发布时间:2012/9/1 8:45:00
--  

e.Form.Controls("otab").Visible  = (bar.SelectedPage.Butt)

e.Form.Controls("mtab").Visible = (bar.SelectedPage.Butt)

......


--  作者:lin_hailun
--  发布时间:2012/9/1 8:48:00
--  
这样的问题的话,确实没有太便捷的方法了(要是,实现也麻烦了点)

你可以通过“命名规范”来缩减代码。

比如 导航页的名称命名为"pg1_tab1" 然后 对应的页面集合命名为“tab1”

这样,就可以通过一段代码去实现你的需求

思路是 显示点击的那个导航页的名称中的”tab1"页面,其余的页面隐藏起来。(通过遍历页面集合)

--  作者:silentwind
--  发布时间:2012/9/1 16:02:00
--  

谢谢各位。

 

我还有一个问题:

 

另外: 我不知道是否可以将以上的TAPCONTROL 做成一个一个窗口(不和导航栏在主窗口里),用控件或者代码在主窗口中相应位置处

导入这些TAPCONTROL 的窗口,这样编辑文件会比较简单。

我这么想是否可以?


--  作者:狐狸爸爸
--  发布时间:2012/9/1 17:50:00
--  

可以:

 

If Forms("窗口名").Opened Then

    Forms("窗口名").Controls("otab").Visible = (bar.SelectedPage.ButtonText = “订单明细")

    Forms("窗口名").Controls("mtab").Visible = (bar.SelectedPage.ButtonText = “产品”)

End If
--  作者:silentwind
--  发布时间:2012/9/1 18:15:00
--  
非常感谢。
--  作者:silentwind
--  发布时间:2012/9/1 20:17:00
--  

狐爸,我运行你的代码,还是有些问题。

 

我的设计是:将导航栏指向的部分(以下橘色部分),可否另做几个单独的窗口对应导航栏的几个选择BUTTON,用代码指引到主窗口的橘色部分里。

 

1.)橘色部分:只是在主窗口的一部分中;


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

 

2.)单独的窗口(和主窗口分开),分别对应导航栏的选择键(例如:订单明细)


 


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

 

可否做到以上要求呢?

 

如果你的代码是可以体现以上的设计要求,请问这个代码应该体现在 导航栏选择键 的事件 SELECTINDEXCHANGED?

不好意思,我是初学者,很多地方请教。