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

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

克隆

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

这是一个非常相似的问题,有这种答案克隆温风控件

最新更新