Vb.net 如何在VisualStudio中基于变量调用对象?
所以我想写一个智囊团游戏,但我有个问题 我在10个不同的行中设置了40个PictureBox,我希望有一个代码来处理所有10行,而不是复制和粘贴代码以及更改PictureBox的名称。我一直试图使用一个变量来实现这一点,但如果可能的话,我不知道正确的方法。Vb.net 如何在VisualStudio中基于变量调用对象?,vb.net,visual-studio,variables,object,picturebox,Vb.net,Visual Studio,Variables,Object,Picturebox,所以我想写一个智囊团游戏,但我有个问题 我在10个不同的行中设置了40个PictureBox,我希望有一个代码来处理所有10行,而不是复制和粘贴代码以及更改PictureBox的名称。我一直试图使用一个变量来实现这一点,但如果可能的话,我不知道正确的方法。 这就是我现在拥有的: Dim X As Integer Dim Y As Integer Private Sub ButtonCheck_Click(ByVal sender As System.Object, ByVal e As S
这就是我现在拥有的:
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
有没有办法做到这一点?我是编程新手,如果这是一个非常简单的问题,我很抱歉。要检查所有图片库,请将所有图片库放入一个数组中,并使用for each循环检查它们
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
要检查特定的picturebox,请省略for each循环,并使用索引寻址要检查的picturebox。注意:索引从零开始,因此在这种情况下picturebox1的索引为零
Private Sub Check1()
Dim picBoxArr() As PictureBox = {PictureBox1, PictureBox2, PictureBox3, PictureBox4}
If picBoxArr(0).Tag = "Red" Then
'yada yada
End If
End Sub
您可以在此处阅读有关数组的更多信息要检查所有PictureBox,请将所有PictureBox放入一个数组中,并使用for each循环检查它们
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
要检查特定的picturebox,请省略for each循环,并使用索引寻址要检查的picturebox。注意:索引从零开始,因此在这种情况下picturebox1的索引为零
Private Sub Check1()
Dim picBoxArr() As PictureBox = {PictureBox1, PictureBox2, PictureBox3, PictureBox4}
If picBoxArr(0).Tag = "Red" Then
'yada yada
End If
End Sub
如果HighlightRow1=True是冗余的,并且在功能上等同于更简洁的,如果HighlightRow1在需要对象引用的地方使用类名,则可以在此处阅读有关数组的更多信息。最好从一本书或一所学校学习面向对象编程,当你在基础知识方面遇到困难时,反复尝试会有很多错误。使用40个控件而不是1个控件是另一种类似的尝试。你想用这些大量的PictureBox实现什么?哈哈,我正在写一个策划程序。这是一个通常由两人参与的游戏。我现在差不多完成了。如果HighlightRow1=True,那么它是多余的,并且在功能上等同于更简洁的如果HighlightRow1,那么它的价值在于使用一个需要对象引用的类名。最好从一本书或一所学校学习面向对象编程,当你在基础知识方面遇到困难时,反复尝试会有很多错误。使用40个控件而不是1个控件是另一种类似的尝试。你想用这些大量的PictureBox实现什么?哈哈,我正在写一个策划程序。这是一个通常由两人参与的游戏。我现在差不多完成了。非常感谢你!这正是我想要的:谢谢你!这正是我想要的:D