我正在尝试动态创建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
但是只显示一个图片框。我希望这是因为它们位于相同的位置。我如何将图片框排列成不重叠的线?
答案 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
中。