VB.NET:如何以编程方式向WinForm添加多个控件

VB.NET:如何以编程方式向WinForm添加多个控件,vb.net,winforms,controls,Vb.net,Winforms,Controls,我正在尝试在timer tick事件中将标签添加到表单中。它添加了第一个标签没有问题,但似乎没有添加更多 经过一些调试后,我可以看到添加了控件,但它只显示第一个标签。这里有我遗漏的东西吗 Private Sub timTick1_Tick(sender As System.Object, e As System.EventArgs) Handles timTick1.Tick iTick1 += 1 lblTick1.Text = iTick1 iPhase += 1

我正在尝试在timer tick事件中将标签添加到表单中。它添加了第一个标签没有问题,但似乎没有添加更多

经过一些调试后,我可以看到添加了控件,但它只显示第一个标签。这里有我遗漏的东西吗

Private Sub timTick1_Tick(sender As System.Object, e As System.EventArgs) Handles timTick1.Tick
    iTick1 += 1
    lblTick1.Text = iTick1

    iPhase += 1
    lblPhase.Text = iPhase

    Select Case iPhase
        Case 1
            Phase1()
        Case 2
            Phase2()
        Case 3
            Phase3()
        Case 4
            Phase4()
    End Select

    If iPhase = 4 Then
        iPhase = 0
    End If
End Sub

Private Sub Phase4()
    Panel3.Controls.Add(New Label With {.Text = "TESTING" & iTick1, .Location = New Point(iTick1, iTick1)})
End Sub

指定的位置属性不正确,4像素不够。第二个标签将位于第一个标签下方,因此您无法读取其文本。使用正确的位置或使用标签的BringToFront()方法。谢谢,BringToFront()方法有效。我知道标签是在第一个标签下渲染的,但我不明白为什么我没有看到第20个、第100个或第1000个标签,因为它将在原始标签之外渲染。无论如何,这一切现在似乎都在起作用;这更像是一种概念证明。谢谢。您必须设置BackColor或BorderStyle属性才能看到它。