我在vb.net中有一个循环,我想要显示50个面板,所有面板都有相同的3个控件。只有最后一个控件填充了3个控件,为什么会这样?
Dim PanelVerticalPoint As Integer = btDF.Height * 6
For counter = 1 To 50 Step +1
Dim ButtonPanel As Panel = New Panel
With ButtonPanel
ButtonPanel.Location = New Point(0, PanelVerticalPoint)
ButtonPanel.Size = New Size(btDF.Width, btDF.Height)
Me.Controls.Add(ButtonPanel)
ButtonPanel.Controls.Add(btCustomButtonMenu)
ButtonPanel.Controls.Add(btCustomTextBox)
ButtonPanel.Controls.Add(btCustomButton)
End With
PanelVerticalPoint = PanelVerticalPoint + btDF.Height
Next counter发布于 2013-09-23 11:41:59
您必须向每个面板添加一个新的按钮实例。您正在将相同的按钮实例添加到面板中,因此每次添加都是在移动按钮。
发布于 2013-09-23 11:59:11
克隆一个控件并不容易。看起来您的案例可能更适合用户控件。在设计器中使用按钮和文本框创建用户控件,然后只需创建多个用户控件的实例,而不是面板。
这里有一个非常类似的问题,答案是Clone Winform control
https://stackoverflow.com/questions/18951357
复制相似问题