Vb.net 如何在面板控件中动态创建控件
我想在一个面板中创建5个PictureBox控件Vb.net 如何在面板控件中动态创建控件,vb.net,for-loop,Vb.net,For Loop,我想在一个面板中创建5个PictureBox控件 Dim a As PictureBox = New PictureBox Dim loc As Point = New Point(0, 0) For n As Integer = 0 To 4 a.Location = loc a.Size = New Size(100, 100) a.BorderStyle = BorderStyle.Fixed3D a.BackCol
Dim a As PictureBox = New PictureBox
Dim loc As Point = New Point(0, 0)
For n As Integer = 0 To 4
a.Location = loc
a.Size = New Size(100, 100)
a.BorderStyle = BorderStyle.Fixed3D
a.BackColor = Color.Aqua
Panel1.Controls.Add(a)
n = n + 1
loc = a.Location + New Point(50, 50)
Next
每次我运行时,面板中只有一个picturebox控件,位于它从循环中得到的最后一个位置。如何在不使用FlowLayoutPanel的情况下在此面板中放置我的5个pictureboxes
关于循环还有另一个问题,我没有对它使用任何“步骤”,但是每次n增加,就像n+=2一样。为什么在我声明n=n+1的情况下,这个值会这样增加?您似乎在向面板中添加对同一图片框的五个引用。我建议您移动:
Dim a As PictureBox = New PictureBox
在For循环中执行第一条语句。您似乎在向面板的同一图片框添加五个引用。我建议您移动:
Dim a As PictureBox = New PictureBox
在For循环中,作为执行的第一条语句。您可以像这样简化代码:
Dim PicBoxes(4) As PictureBox
For Index As Integer = 0 To PicBoxes.Length - 1
PicBoxes(Index) =
New PictureBox With
{
.Location = New Point(50 * Index, 50 * Index),
.Size = New Size(100, 100),
.BorderStyle = BorderStyle.Fixed3D,
.BackColor = Color.Aqua
}
Next Index
Panel1.Controls.AddRange(PicBoxes)
您可以这样简化代码:
Dim PicBoxes(4) As PictureBox
For Index As Integer = 0 To PicBoxes.Length - 1
PicBoxes(Index) =
New PictureBox With
{
.Location = New Point(50 * Index, 50 * Index),
.Size = New Size(100, 100),
.BorderStyle = BorderStyle.Fixed3D,
.BackColor = Color.Aqua
}
Next Index
Panel1.Controls.AddRange(PicBoxes)
哦,我的上帝!你是对的!我不知道为什么经过一天的工作,我不能理解这么简单的事情!无论如何,感谢上帝!你是对的!我不知道为什么经过一天的工作,我不能理解这么简单的事情!无论如何,谢谢你