以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  代码问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=8341)

--  作者:wqc360
--  发布时间:2010/10/9 11:35:00
--  代码问题
  请问以下代码如何改成For Each 语句,应为我实际达到20多个页面,谢谢

If Forms("界面").Controls("TabControl1").SelectedIndex <> 1 Then \'确定页面位置为2

    Dim pg As WinForm.TabPage

    Dim pg1 As WinForm.TabPage

    Dim pg2 As WinForm.TabPage

    Dim pg3 As WinForm.TabPage

    Dim pg4 As WinForm.TabPage

    Dim pg5 As WinForm.TabPage

    pg = Forms("界面").Controls("TabControl1").TabPages(0) \'指定第2页面

    pg1 = Forms("界面").Controls("TabControl1").TabPages(1) \'指定第2页面

    pg2 = Forms("界面").Controls("TabControl1").TabPages(2) \'指定第2页面

    pg3 = Forms("界面").Controls("TabControl1").TabPages(3) \'指定第2页面

    pg4 = Forms("界面").Controls("TabControl1").TabPages(4) \'指定第2页面

    pg5 = Forms("界面").Controls("TabControl1").TabPages(5) \'指定第2页面

    pg. Visible = True   \'关闭该页面

    pg1.Visible = False   \'关闭该页面

    pg2.Visible = False   \'关闭该页面

    pg3.Visible = False   \'关闭该页面

    pg4.Visible = False   \'打开该页面

    pg5.Visible = False   \'关闭该页面

End If

If Forms("界面").Controls("TabControl2").SelectedIndex <> 1 Then \'确定页面位置为2

    Dim pga As WinForm.TabPage

    Dim pga1 As WinForm.TabPage

    Dim pga2 As WinForm.TabPage

    Dim pga3 As WinForm.TabPage

    Dim pga4 As WinForm.TabPage

    Dim pga5 As WinForm.TabPage

    pga = Forms("界面").Controls("TabControl2").TabPages(0) \'指定第2页面

    pga1 = Forms("界面").Controls("TabControl2").TabPages(1) \'指定第2页面

    pga2 = Forms("界面").Controls("TabControl2").TabPages(2) \'指定第2页面

    pga3 = Forms("界面").Controls("TabControl2").TabPages(3) \'指定第2页面

    pga4 = Forms("界面").Controls("TabControl2").TabPages(4) \'指定第2页面

    pga5 = Forms("界面").Controls("TabControl2").TabPages(5) \'指定第2页面

    pga. Visible = True   \'关闭该页面

    pga1.Visible = False   \'关闭该页面

    pga2.Visible = False   \'关闭该页面

    pga3.Visible = False   \'关闭该页面

    pga4.Visible = False   \'打开该页面

    pga5.Visible = False   \'关闭该页面

 

End If

Forms("界面").Controls("TabControl1").SelectedIndex = 1 \'回到第4页面

Forms("界面").Controls("TabControl2").SelectedIndex = 1 \'回到第4页面


--  作者:czy
--  发布时间:2010/10/9 12:13:00
--  
没明白你究竟想干什么?
--  作者:czy
--  发布时间:2010/10/9 12:37:00
--  

仅显示第二个页面。

 

For i As Integer = 0 To e.Form.Controls("TabControl1").TabPages.Count -1
    If i <> 1 Then
        e.Form.Controls("TabControl1").TabPages(i).Visible = False
    End If
Next

[此贴子已经被作者于2010-10-9 12:37:36编辑过]

--  作者:wqc360
--  发布时间:2010/10/9 12:40:00
--  

Forms("界面").Controls("TabControl1")和Forms("界面").Controls("TabControl2")有很多个页面,在菜单按钮代码执行:指定1个页面可见,其余不可见。

像以上代码就是可见第一页面,其余不可见。这样写代码太长,我想用页面集合来写,不知怎样写代码,谢谢


--  作者:czy
--  发布时间:2010/10/9 12:43:00
--  

抬头看。


--  作者:wqc360
--  发布时间:2010/10/9 12:53:00
--  
谢谢C版,3楼代码意思对了,但是我是用在菜单按钮代码中,e.Form.Controls("TabControl1")时候应改成:

Forms("界面").Controls("TabControl1")

下午上班试试看,再次谢谢


--  作者:czy
--  发布时间:2010/10/9 12:57:00
--  

如果是菜单中,还得再加个判断的,如:

If Forms("界面").Opened Then

……

End If


--  作者:wqc360
--  发布时间:2010/10/9 17:33:00
--  
谢谢C版,搞定