所以我正在尝试编写MasterMind游戏,但我遇到了问题
我有10个不同的行设置了40个图片框,我希望有一个代码处理所有10行,而不是复制和粘贴代码并更改图片框的名称。我一直在尝试使用变量来实现这一目标,但如果可行,那么我不知道正确的方法。
这就是我现在所拥有的:
Dim X As Integer
Dim Y As Integer
Private Sub ButtonCheck_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonCheck.Click
If HighlightRow1 = True Then
X = 1
Y = 2
Check1()
ElseIf HighlightRow2 = True Then
X = 4
Y = 5
Check1()
...
EndIf
End Sub
Private Sub Check1()
If PictureBox(X).Tag = "Red" //'Getting this error: Class 'System.Windows.Forms.PictureBox' cannot be indexed because it has no default property.
blah blah blah
ElseIf PictureBox(X).Tag = "Green" Then
blah blah blah
...
EndIf
If Picturebox(Y).Tag = "Red" Then
blah blah blah
...
End If
有没有办法做到这一点?我是编程新手,所以如果这是一个非常简单的问题,我很抱歉。
答案 0 :(得分:1)
要检查所有图片框,请将所有图片框放入一个数组中,然后使用每个循环来检查它们。
Private Sub Check1()
Dim picBoxArr() As PictureBox = {PictureBox1, PictureBox2, PictureBox3, PictureBox4}
For Each picBox in picBoxArr
If picBox.Tag = "Red" Then
'yada yada
End If
Next
End Sub
要检查特定的图片框,请忽略每个循环,并使用索引查找要检查的图片框。注意:索引从零开始,因此在这种情况下,picturebox1的索引为零。
Private Sub Check1()
Dim picBoxArr() As PictureBox = {PictureBox1, PictureBox2, PictureBox3, PictureBox4}
If picBoxArr(0).Tag = "Red" Then
'yada yada
End If
End Sub
您可以在此处阅读有关数组的更多信息http://msdn.microsoft.com/en-us/library/wak0wfyt.aspx