【问题标题】:Issue with a vb.net panel control loopvb.net 面板控制循环问题
【发布时间】:2013-09-23 03:26:58
【问题描述】:

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

【问题讨论】:

  • 为什么不为此使用自定义控件?

标签: vb.net


【解决方案1】:

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

【讨论】:

  • 谢谢,现在说得通了。但是我该怎么做呢?
【解决方案2】:

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

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

【讨论】:

  • 我想这就是我要走的路。我想我快完成了,但由于某种原因,当我将它添加到我的主窗体时,我看不到用户控件上的任何控件。有什么想法吗?感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-23
  • 1970-01-01
  • 2011-01-31
  • 2012-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多