如何在 Visual Basic 中制作 PictureBox 数组

问题描述 投票:0回答:4

如何在 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 个。

这就是我想要得到的(或类似的东西): What i'm trying to get

结果是这样的: What Happens

我怎样才能做到这一点?预先感谢!

arrays vb.net picturebox
4个回答
3
投票

如果你想创建一个控制数组:

Dim blk() As PictureBox

blk = New PictureBox() {PictureBox1, PictureBox2, PictureBox3, PictureBox4}

然后您可以使用 blk(0) 引用 PictureBox1,使用 blk(1) 引用 PictureBox2,使用 blk(2) 引用 PictureBox3,使用 blk(3) 引用 PictureBox4。


1
投票

您正在为所有 10 个 PictureBox 分配相同的

Object
引用。您需要分别实例化每个 PictureBox,然后分配每个 PictureBox 的
Image
属性。

顺便说一句,你真的应该研究一下 GDI+ 的绘图方法,例如 Graphics.DrawImage() 来做这种事情。它会快得多,而且不会占用太多内存。


1
投票

你可以试试这个:

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

0
投票

在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=

等指定每个图片框的大小、表单内的位置及其图像。

© www.soinside.com 2019 - 2024. All rights reserved.