繁体   English   中英

在循环中创建动态标签 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,您将能够看到其他标签。

如果设置了标签的 BackColor,就可以清楚地看到问题所在。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM