在vb中动态创建多个图片框

时间:2019-08-31 16:12:17

标签: vb.net

我正在尝试动态创建5个图片框

我使用循环创建5。

Dim FormBoxes As New List(Of PictureBox)
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    MonthCalendar1.TodayDate = Now
    Dim Member As Integer = FormBoxes.Count - 1
    Dim num As Integer
    Dim AvailableIcon As New System.Drawing.Bitmap(My.Resources.available)
    Dim pb As New PictureBox
    pb.Width = 30
    pb.Height = 30
    pb.Top = 50
    pb.Left = 50
    pb.Image = AvailableIcon
    For num = 1 To 5
        Me.Controls.Add(pb)
    Next

End Sub

但是只显示一个图片框。我希望这是因为它们位于相同的位置。我如何将图片框排列成不重叠的线?

1 个答案:

答案 0 :(得分:0)

您仅创建一个图片框。如果要5个图片框,请创建5个图片框,即您必须重复New PictureBox五次。

Dim AvailableIcon As New System.Drawing.Bitmap(My.Resources.available)
For num As Integer = 0 To 4
    Dim pb As New PictureBox With {
        .Width = 30,
        .Height = 30,
        .Top = 50,
        .Left = 50 + num * 35, 
        .Image = AvailableIcon
    }
    Me.Controls.Add(pb)
    FormBoxes.Add(pb)
Next

.Left = 50 + num * 35使图片显示在同一行上,并且它们之间的距离为5像素。

请注意,我是从0 To 4开始迭代的。因此,num * 35对于第一个将为零。

另一种选择是将图片框添加到自动排列图片的FlowLayoutPanel中。