循环通过VB.NET中的控件

Roh*_*nde 2 vb.net

我正在创建一个国际象棋程序.它由64个图片框组成,具有交替的黑白背景颜色.
我已经将它们命名为pba1,pba2,pbb1,pbb2,pbc1等.
现在,我只想循环遍历黑色,例如,我只想循环,pba1,pbb2,pbc3等等.
如何在VB.NET中为此创建循环?

我知道循环使用类似命名的控件的方法,但我无法针对我的问题调整该方法.你能告诉我一个解决方案吗?

编辑:在pba1中,pb代表图片框,a1代表正方形.为了以防万一,你想知道为什么这么一个名字.

编辑:看看这个答案

Mar*_*all 5

循环访问ControlCollection中的PictureBox并测试BackColor.我使用Form的ControlCollection,如果它们在某些其他类型的容器控件中使用它.

For Each cntrl As Control In Me.Controls
    If TypeOf cntrl Is PictureBox Then
        If cntrl.BackColor = Color.Black Then
            'Do Something
        End If
    End If
Next
Run Code Online (Sandbox Code Playgroud)

根据您在答案中提供的其他信息,您的示例不起作用的原因是控件名称是一个字符串,您将它与PictureBox控件进行比较而不是控件的名称.

您可以尝试使用TagProperty而不是NameControl,它将更清晰,更易于阅读.我只是在PictureBox的标签属性为黑色1和0为白色.

Private Sub OriginalColour()               
    For Each cntrl As Control In Me.Controls
        Dim result As Integer
        If TypeOf cntrl Is PictureBox Then
            If Integer.TryParse(cntrl.Tag.ToString, result) Then
                If result = 1 Then
                    cntrl.BackColor = Color.Gray
                Else
                    cntrl.BackColor = Color.White
                End If
            End If

        End If
    Next
End Sub
Run Code Online (Sandbox Code Playgroud)