循环遍历 ControlCollection 中的 PictureBox 并测试 BackColor。我使用了表单的 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
根据您在回答中提供的其他信息,您的示例不起作用的原因是控件名称是一个字符串,并且您将其与 PictureBox 控件而不是控件的名称进行比较。
您可以尝试使用Tag
Property 而不是Name
Control 的,它会更清晰,更易于阅读。我只是在 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