我正在创建一个国际象棋程序.它由64个图片框组成,具有交替的黑白背景颜色.
我已经将它们命名为pba1,pba2,pbb1,pbb2,pbc1等.
现在,我只想循环遍历黑色,例如,我只想循环,pba1,pbb2,pbc3等等.
如何在VB.NET中为此创建循环?
我知道循环使用类似命名的控件的方法,但我无法针对我的问题调整该方法.你能告诉我一个解决方案吗?
编辑:在pba1中,pb代表图片框,a1代表正方形.为了以防万一,你想知道为什么这么一个名字.
编辑:看看这个答案
循环访问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)
| 归档时间: |
|
| 查看次数: |
24837 次 |
| 最近记录: |