如何在 Visual Basic 中创建 PictureBox 数组?
我正在尝试制作一行图片框 - 它们的大小和图片都相同 - 以在整个表单上显示。我怎么能做到这一点?
我用这个制作了数组:
Dim blk(10) As PictureBox
放置图片框的代码是这样的:
'Create PictureBoxes
blk(0) = blk_Green()
blk(0).Image = imgl_blk.Images(0)
blk(0).Visible = True
blk(0).SetBounds(10, 10, blk_Green.Width, blk_Green.Height)
For i = 1 To 10 Step 1
blk(i) = blk_Green()
blk(i).Image = imgl_blk.Images(0)
blk(i).Visible = True
blk(i).SetBounds(i * 10, 10, blk_Green.Width, blk_Green.Height)'I will change this according to what it needs to be
Next
imgl_blk是一个ImageList,blk_Green是我已经在表单上制作的ImageBox。
当我运行它时,只会显示其中一个 PictureBox,而不是数组中的全部 10 个。
这就是我想要得到的(或类似的东西):
结果是这样的:
我怎样才能做到这一点?预先感谢!
如果你想创建一个控制数组:
Dim blk() As PictureBox
blk = New PictureBox() {PictureBox1, PictureBox2, PictureBox3, PictureBox4}
然后您可以使用 blk(0) 引用 PictureBox1,使用 blk(1) 引用 PictureBox2,使用 blk(2) 引用 PictureBox3,使用 blk(3) 引用 PictureBox4。
您正在为所有 10 个 PictureBox 分配相同的
Object
引用。您需要分别实例化每个 PictureBox,然后分配每个 PictureBox 的 Image
属性。
顺便说一句,你真的应该研究一下 GDI+ 的绘图方法,例如 Graphics.DrawImage() 来做这种事情。它会快得多,而且不会占用太多内存。
你可以试试这个:
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim Shapes(10) As PictureBox
For i = 1 To 10
Shapes(i) = New PictureBox
Shapes(i).Name = "rect" + Str(i)
Shapes(i).BackColor = Color.Green
Shapes(i).Location = New Point(10 + 50 * i, 20)
Shapes(i).Size = New Size(40, 20)
Shapes(i).Visible = True
Me.Controls.Add(Shapes(i))
Next
End Sub
End Class
在VB表单设计器中,您可以添加10个图片框,例如PBox0,PBox1,..PBox9。然后使用如下代码:
dim PBoxArr(9) as picturebox
PBoxArr(0)=PBox0
..
PBoxArr(9)=PBox9
PBoxArr(0).left=
PBoxArr(0).top=
PBoxArr(0).width=
PBoxArr(0).height=
PBoxArr(0).image=
等指定每个图片框的大小、表单内的位置及其图像。