Dim i As Integer
For i = FrmMain.LBound To FrmMain.UBound Step 1
FrmMain(i).Visible = False
Next i
FrmMain(SetTSp.SelectedItem.Index - 1).Visible = True
FrmMain(SetTSp.SelectedItem.Index - 1).Move 300, 570, 6135, 3975
FrmMain(SetTSp.SelectedItem.Index - 1).ZOrder 0

解决方案 »

  1.   

    Private Sub SStab_Click()
    Dim i As Integer
    For i = FrmMain.LBound To FrmMain.UBound Step 1
    FrmMain(i).Visible = False
    Next i
    FrmMain(SetTSp.SelectedItem.Index - 1).Visible = True
    FrmMain(SetTSp.SelectedItem.Index - 1).Move 300, 570, 6135, 3975
    FrmMain(SetTSp.SelectedItem.Index - 1).ZOrder 0
    End Sub
      

  2.   

    '在窗体上做了个SSTAB和LABEL1(0)在第0个TAB上,LABEL2(0)在第1个TAB上。
    '目的是想在两个TAB上都会出现5个LABEL,但不行。
    Private Sub Form_Load()
        Me.Width = Screen.Width
        Me.Height = Screen.Height
        SSTab1.Height = Me.Height * 0.95
        SSTab1.Width = Me.Width * 0.95
        SSTab1.Top = (Me.Height - SSTab1.Height) / 2
        SSTab1.Left = (Me.Width - SSTab1.Width) / 2
        For i = 1 To 5
            SSTab1.Tab = 0
            Load Label1(i)
            With Label1(i)
                .Caption = i
                .Left = Label1(i - 1).Left
                .Top = Label1(i - 1).Top + 2 * Label1(i - 1).Height
                .Visible = True
            End With
            SSTab1.Tab = 1
            Load Label2(i)
            With Label2(i)
                .Caption = i
                .Left = Label2(i - 1).Left
                .Top = Label2(i - 1).Top + 2 * Label2(i - 1).Height
                .Visible = True
            End With
        Next i
    End Sub
      

  3.   

    各位请指出问题出在哪里。
    shawls(小山(坚持VB,学Delphi和C#))能否对程序做一下解释,小弟好象不懂您的意思,是不是我问题没说清楚。
      

  4.   

    shawls(小山(坚持VB,学Delphi和C#)) 请指点一下?
    各位路过的也请GZ一下嘛!!!!!!!
      

  5.   


    : cy_nwau(阿东) (2002-1-6 19:42:17)  得0分 
    '在窗体上做了个SSTAB和LABEL1(0)在第0个TAB上,LABEL2(0)在第1个TAB上。
    '目的是想在两个TAB上都会出现5个LABEL,但不行。
    if  SetTSp.SelectedItem.Index =5 thenlabel1(5).Visible = True            '可见
    label1(5).Move 300, 570, 6135, 3975   '位置
    label1(5).ZOrder 0label2(5).Visible = True
    label3(5).Move 300, 570, 6135, 3975
    label4(5).ZOrder 0end if
      

  6.   

    mail [email protected]
    qq9181729
      

  7.   

    简单:
    Private Sub Command1_Click()
        SSTab1.Tab = 1 '放在第二个TAB
        Set Label1.Container = SSTab1
    End Sub
      

  8.   

    现在我将问题简单化。
    我的一个SSTAB控件有5个TAB,我想给5个TAB以不同的ToolTipText,能否实现。
      

  9.   

    Private Sub Form_Load()
        For i = 1 To 3
            TabStrip1.Tabs(i).ToolTipText = "tab" + Str(i)
        Next
    End Sub
      

  10.   

    '当然可以实现了。简单:Dim PerTabWidth As Double
    Dim Tips() As StringPrivate Sub Form_Load()
        PerTabWidth = SSTab1.Width / SSTab1.Tabs
        ReDim Tips(SSTab1.Tabs)
        For i = 0 To SSTab1.Tabs - 1
            Tips(i) = "这是SSTAB的第 " & i & " 个ToolTipText。没有问题了吧。"
        Next
    End SubPrivate Sub SSTab1_Click(PreviousTab As Integer)
    SSTab1.ToolTipText = SSTab1.Tab
    End SubPrivate Sub SSTab1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
        SSTab1.ToolTipText = Tips(Int(X / PerTabWidth))
    End Sub
      

  11.   

    忘了把这段删掉:
    Private Sub SSTab1_Click(PreviousTab As Integer)
    SSTab1.ToolTipText = SSTab1.Tab
    End Sub
      

  12.   

    那请教各位高手,我的这段程序实现不了问题出现在哪里?
    '在窗体上做了个SSTAB和LABEL1(0)在第0个TAB上,LABEL2(0)在第1个TAB上。
    '目的是想在两个TAB上都会出现5个LABEL,但不行。
    Private Sub Form_Load()
        Me.Width = Screen.Width
        Me.Height = Screen.Height
        SSTab1.Height = Me.Height * 0.95
        SSTab1.Width = Me.Width * 0.95
        SSTab1.Top = (Me.Height - SSTab1.Height) / 2
        SSTab1.Left = (Me.Width - SSTab1.Width) / 2
        For i = 1 To 5
            SSTab1.Tab = 0
            Load Label1(i)
            With Label1(i)
                .Caption = i
                .Left = Label1(i - 1).Left
                .Top = Label1(i - 1).Top + 2 * Label1(i - 1).Height
                .Visible = True
            End With
            SSTab1.Tab = 1
            Load Label2(i)
            With Label2(i)
                .Caption = i
                .Left = Label2(i - 1).Left
                .Top = Label2(i - 1).Top + 2 * Label2(i - 1).Height
                .Visible = True
            End With
        Next i
    End Sub
      

  13.   

    不用LOAD
    使用SET LABEL1(I)=FORM1.CONTROLS.ADD("VB.LABEL","LABEL1"+TRIM(STR(I)))
      

  14.   

    Dim LABEL1(5) As Label, LABEL2(5) As Label
    Private Sub Form_Load()
        Me.Width = Screen.Width
        Me.Height = Screen.Height
        SSTab1.Height = Me.Height * 0.95
        SSTab1.Width = Me.Width * 0.95
        SSTab1.Top = (Me.Height - SSTab1.Height) / 2
        SSTab1.Left = (Me.Width - SSTab1.Width) / 2
        For I = 0 To 5
            SSTab1.Tab = 0
            Set LABEL1(I) = Form1.Controls.Add("VB.LABEL", "LABEL1" + Trim(Str(I)))
            With LABEL1(I)
                .Caption = I
                .Visible = True
                Set .Container = SSTab1
                If I <> 0 Then
                    .Left = LABEL1(I - 1).Left
                    .Top = LABEL1(I - 1).Top + 2 * LABEL1(I - 1).Height
                Else
                    .Left = 100
                    .Top = 100
                End If
            End With
            SSTab1.Tab = 1
            Set LABEL2(I) = Form1.Controls.Add("VB.LABEL", "LABEL2" + Trim(Str(I)))
            With LABEL2(I)
                .Caption = I
                 .Visible = True
                Set .Container = SSTab1
                
                If I <> 0 Then
                   .Left = LABEL2(I - 1).Left
                    .Top = LABEL2(I - 1).Top + 2 * LABEL2(I - 1).Height
                    .Visible = True
                Else
                    .Left = 100
                    .Top = 100
                End If
            
            End With
        Next I
    End Sub
      

  15.   

    Label1(0)、Label2(0)控件在设计时必须放在Form1中,即他们的容器是Form而不是sstab1.
      

  16.   

    再用set label().container=sstab1
    还有,不能把Load和set label().container=sstab1同放在Form_Load()中, 必须分开, 否则,达不到效果。这应该是VB的BUG。例子如下:
        SSTab1.Tab = 0
        For i = 1 To 5
            With Label1(i)
                Set .Container = SSTab1
                .Visible = True
            End With
        Next
        
        SSTab1.Tab = 1
        For i = 1 To 5
            With Label2(i)
                Set .Container = SSTab1
                .Visible = True
            End With
        Next i
    End SubPrivate Sub Form_Load()
        Me.Width = Screen.Width
        Me.Height = Screen.Height
        SSTab1.Height = Me.Height * 0.95
        SSTab1.Width = Me.Width * 0.95
        SSTab1.Top = (Me.Height - SSTab1.Height) / 2
        SSTab1.Left = (Me.Width - SSTab1.Width) / 2
        
        For i = 1 To 5
            Load Label1(i)
            With Label1(i)
                .Caption = i & "第一个Label数组"
                .Left = Label1(i - 1).Left
                .Top = Label1(i - 1).Top + 2 * Label1(i - 1).Height
            End With
        Next
        
        For i = 1 To 5
            Load Label2(i)
            With Label2(i)
                .Caption = i & "第二个Label数组"
                .Left = Label2(i - 1).Left
                .Top = Label2(i - 1).Top + 2 * Label2(i - 1).Height
            End With
        Next i
    End Sub
    '*********************************************************************
    '而下面这种方式不行,达不到要求:(其实就是把两段一同放在Form_Load事件中)
    '你们可以试一试。
    '*********************************************************************
    'Private Sub Form_Load()
    '    Me.Width = Screen.Width
    '    Me.Height = Screen.Height
    '    SSTab1.Height = Me.Height * 0.95
    '    SSTab1.Width = Me.Width * 0.95
    '    SSTab1.Top = (Me.Height - SSTab1.Height) / 2
    '    SSTab1.Left = (Me.Width - SSTab1.Width) / 2
    '
    '    For i = 1 To 5
    '        Load Label1(i)
    '        With Label1(i)
    '            .Caption = i & "第一个Label数组"
    '            .Left = Label1(i - 1).Left
    '            .Top = Label1(i - 1).Top + 2 * Label1(i - 1).Height
    '        End With
    '    Next
    '
    '    For i = 1 To 5
    '        Load Label2(i)
    '        With Label2(i)
    '            .Caption = i & "第二个Label数组"
    '            .Left = Label2(i - 1).Left
    '            .Top = Label2(i - 1).Top + 2 * Label2(i - 1).Height
    '        End With
    '    Next i
    '    '**********************************************
    '    SSTab1.Tab = 0
    '    For i = 1 To 5
    '        With Label1(i)
    '            Set .Container = SSTab1
    '            .Visible = True
    '        End With
    '    Next
    '
    '    SSTab1.Tab = 1
    '    For i = 1 To 5
    '        With Label2(i)
    '            Set .Container = SSTab1
    '            .Visible = True
    '        End With
    '    Next i
    'End Sub
    '
    '
      

  17.   

    : yangzhaoyu(老妖) 
    你的代码我试了一下,不行啊?只能在第一个TAB上出现五个LABEL,第二个TAB上出现不了。什么原因?
    Dim LABEL1(5) As Label, LABEL2(5) As Label
    Private Sub Form_Load()
        Me.Width = Screen.Width
        Me.Height = Screen.Height
        SSTab1.Height = Me.Height * 0.95
        SSTab1.Width = Me.Width * 0.95
        SSTab1.Top = (Me.Height - SSTab1.Height) / 2
        SSTab1.Left = (Me.Width - SSTab1.Width) / 2
        For I = 0 To 5
            SSTab1.Tab = 0
            Set LABEL1(I) = Form1.Controls.Add("VB.LABEL", "LABEL1" + Trim(Str(I)))
            With LABEL1(I)
                .Caption = I
                .Visible = True
                Set .Container = SSTab1
                If I <> 0 Then
                    .Left = LABEL1(I - 1).Left
                    .Top = LABEL1(I - 1).Top + 2 * LABEL1(I - 1).Height
                Else
                    .Left = 100
                    .Top = 100
                End If
            End With
            SSTab1.Tab = 1
            Set LABEL2(I) = Form1.Controls.Add("VB.LABEL", "LABEL2" + Trim(Str(I)))
            With LABEL2(I)
                .Caption = I
                .Visible = True
                Set .Container = SSTab1
                
                If I <> 0 Then
                  .Left = LABEL2(I - 1).Left
                    .Top = LABEL2(I - 1).Top + 2 * LABEL2(I - 1).Height
                    .Visible = True
                Else
                    .Left = 100
                    .Top = 100
                End If
            
            End With
        Next I
    End Sub
      

  18.   

    hand2001(我爱VB不爱我) 
    您的这一个程序少一个SUB,所以我不能确定您的这段程序写在哪一个事件里的。请明示
        SSTab1.Tab = 0
        For i = 1 To 5
            With Label1(i)
                Set .Container = SSTab1
                .Visible = True
            End With
        Next
        
        SSTab1.Tab = 1
        For i = 1 To 5
            With Label2(i)
                Set .Container = SSTab1
                .Visible = True
            End With
        Next i
    End Subhand2001(我爱VB不爱我) 
    您的这一个程序少一个SUB,所以我不能确定您的这段程序写在哪一个事件里的。请明示
      

  19.   

    第一个子程序写在Form_Active()事件中。
      

  20.   

    这个方法肯定可行。请注意:
    在form上放置Label1(0),Label2(0),Sstab1三个控件。
    其中Label1(0),Label2(0)的容器是Form ,而不是SStab1
                                ——---————————
    Private Sub Form_Activate()
      SSTab1.Tab = 0
        For i = 0 To 5
            With Label1(i)
                Set .Container = SSTab1
                .Visible = True
            End With
        Next
        
        SSTab1.Tab = 1
        For i = 0 To 5
            With Label2(i)
                Set .Container = SSTab1
                .Visible = True
            End With
        Next i
        SSTab1.Tab = 0
    End SubPrivate Sub Form_Load()
        Me.Width = Screen.Width
        Me.Height = Screen.Height
        SSTab1.Height = Me.Height * 0.95
        SSTab1.Width = Me.Width * 0.95
        SSTab1.Top = (Me.Height - SSTab1.Height) / 2
        SSTab1.Left = (Me.Width - SSTab1.Width) / 2
        
        For i = 1 To 5
            Load Label1(i)
            With Label1(i)
                .Caption = i & "第一个Label数组"
                .Left = Label1(i - 1).Left
                .Top = Label1(i - 1).Top + 2 * Label1(i - 1).Height
            End With
        Next
        
        For i = 1 To 5
            Load Label2(i)
            With Label2(i)
                .Caption = i & "第二个Label数组"
                .Left = Label2(i - 1).Left
                .Top = Label2(i - 1).Top + 2 * Label2(i - 1).Height
            End With
        Next i
    End Sub