2

我一直在玩一些代码,我轻松地制作了 50 多个控件,所有这些控件都被标记:(PictureBox[XCoordinate]_[YCorrdinate]用我制作的小网格上的坐标替换括号和内容。)

这样做的问题是,在循环更新所有图片框时使用控件非常痛苦。我想知道如何执行以下代码:

'This code assumes that the picture boxes are all initialized.
Dim XCoordiante As Integer = 5
Dim YCorrdinate As Integer = 2
PictureBox[XCoordinate]_[YCoordiante].Image = [Put Image Here]

我将把它放在一个循环中。有没有一种方法可以做到这一点,而无需手动输入所有内容并冒着在 case 语句中丢失某些内容的风险?而且,对于我想要进行的每一种不同类型的更改(例如:标签或错误图像),我都必须重新输入它。

指针会有所帮助吗?我真的不知道如何做到这一点,但如果可能的话,它会非常有帮助。

4

1 回答 1

1

创建它们时,将它们保存到列表中:

Private pList As New List(Of PictureBox)

Dim pic As New PictureBox
With Pic
    .Location = ... 
    ' etc
End With

Me.Controls.Add(pic)
pList.Add(pic)

假设它们是按某种顺序创建的:

For n As integer = 0 To pList.Count = 1
   ' add code to look at Plist(n).X and .Y to determine what to do (?)
   Plist(n).Image = ...
Next n

如果要捕获更多信息,请创建 aPicBox和其他信息的自定义类,并将列表设为 a List(Of myPicClass)

于 2013-10-26T15:29:16.370 回答