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

时间:2016-06-23 11:23:37

标签: .net vb.net microsoft-dynamics labels

我正在创建一个代码,可以从.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

2 个答案:

答案 0 :(得分:0)

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

如果设置标签的BackColor,则可以清楚地看到问题。

如果将AutoSize设置为true,它们将使用最小的空间,即使距离为10,您也可以看到下一个标签。

答案 1 :(得分:0)

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

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