vb.net面板控件循环问题

时间:2013-09-23 03:26:59

标签: vb.net

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

2 个答案:

答案 0 :(得分:2)

您必须为每个面板添加新的按钮实例。您正在向面板添加相同的按钮实例,因此每次添加都会移动按钮。

答案 1 :(得分:0)

克隆控件并不容易。看起来您的情况可能适合用户控件。使用按钮和文本框在设计器中进行用户控制,然后只创建用户控件的许多实例而不是面板。

这是一个与这种答案非常相似的问题 Clone Winform control