在循环中创建动态标签 Vb.Net

Create dynamics labels in a loop Vb.Net

我正在制作一个代码,可以从 .txt 文件自动创建一些标签。我已经有了一个,但它不起作用,它只会创建一个标签。

这是我的代码:

Imports System.IO
Imports System.Text

Public Class Form5

    Public uf8Encoding As Encoding = Encoding.UTF8
    Public lignes() As String = System.IO.File.ReadAllLines("clients.txt")
    Public lineCount As Integer = IO.File.ReadAllLines("clients.txt").Length ' lineCount = 7
    Public a As Integer = 1
    Public position As Integer = 10
    Public lb As Label()

    Private Sub Form5_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    End Sub

    Private Sub loop1(sender As Object, e As EventArgs) Handles Button1.Click
        ReDim lb(lineCount - 1)
        For i = 0 To lineCount - 1
            lb(i) = New Label
            lb(i).Name = "Label" & a
            lb(i).Text = lignes(i)
            lb(i).Location = New Point(position, 10)
            position += 10
            Me.Controls.Add(lb(i))
        Next
    End Sub
End Class

标签彼此重叠,如果将位置增量更改为 100,您将能够看到其他标签。

设置label的BackColor就可以清楚的看到问题了

如果您将 AutoSize 设置为 true,它们将使用最小值 space,即使距离为 10,您也能看到下一个标签。

不知道这是否是您的问题,但您所有的标签都具有相同的名称,"Label1" lb(i).Name = "Label" & a.

在循环 a += 1 中增加 a 。所有标签都有不同的名称。