如何循环显示8个组框,一次显示一个组框

时间:2017-01-29 01:14:37

标签: vb.net loops controls

我试图使用每个循环来选择所有组框,并想办法一次只能看到一个。 对于每个页面作为控制在Me.Controls     如果TypeOf页面是GroupBox那么         CType(page,GroupBox).Visible = False     万一 下一个

1 个答案:

答案 0 :(得分:-1)

循环在一段时间内不能一次显示一个循环。将立即执行循环,因此用户只能看到您显示的最后一个循环。如果您想显示一个特定的GroupBox,那么您可以调用以下方法并传递GroupBox

Private Sub ShowGroupBox(groupBoxToShow As GroupBox)
    Dim groupBoxes = Me.Controls.OfType(Of GroupBox)()

    For Each gb In groupBoxes
        gb.Visible = gb Is groupBoxToShow
    Next
End Sub

为了在每段时间内显示每个GroupBox,您应该使用Timer。每次Timer引发其Tick事件时,您都可以显示下一个GroupBox

Private groupBoxIndex As Integer = 0

Private Sub Timer1_Tick(...) Handles Timer1.Tick
    ShowGroupBox(groupBoxIndex)
    groupBoxIndex += 1
End Sub

Private Sub ShowGroupBox(groupBoxIndexToShow As Integer)
    Dim groupBoxes = Me.Controls.OfType(Of GroupBox)().ToArray()

    If groupBoxIndexToShow = groupBoxes.Length Then
        Timer1.Stop()
    Else
        For i = 0 To groupBoxes.GetUpperBound(0)
            groupBoxes(i).Visible = (i = groupBoxIndexToShow)
        Next
    End If
End Sub