映入眼帘,
我尝试将多个标签创建为数组但到目前为止没有任何作用。
e.g。我把这段代码放到Form1_Load中,它在运行时工作并创建一个标签:
Dim vulabel1 As New Label()
vulabel1.Size = New Size(100, 20)
vulabel1.Location = New Point(25, 25)
vulabel1.Name = "textBox1"
Me.Controls.Add(vulabel1)
vulabel1.Text = "vu label 1"
当我将其更改为for循环时,它将停止工作:
Dim vulabel() As Label
For n As Byte = 0 To 2
vulabel(n).Size = New Size(100, 10)
vulabel(n).Location = New Point(n * 10, n * 10)
vulabel(n).Name = "label " & n.ToString
Me.Controls.Add(vulabel(n))
Next
我认为这应该在运行时在Form1上放置两个标签。
我需要快速创建标签的原因是我需要一个8x8标签的矩阵。至少如果我可以更改默认标签名称,例如我将创建一个标签并将名称更改为vu_label1,复制然后粘贴其他名为vu_label2,vu_label3的标签,遗憾的是,当我复制和粘贴时,Visual Studio会继续将标签名称更改回Label1。
另一件事是你不能将数组元素声明为标签的名称,例如vu_level(1)。
感谢任何输入
答案 0 :(得分:0)
声明数组时必须指定最大索引。基于For
循环,看起来最大索引是2,所以这就是你声明数组的方式
Dim vulabel(2) As Label
下一步是在每次迭代时创建Label
的新实例,如下所示
vulabel(n) = New Label()
这是完整的修改代码
Dim vulabel(2) As Label
For n As Byte = 0 To 2
vulabel(n) = New Label()
vulabel(n).Size = New Size(100, 10)
vulabel(n).Location = New Point(n * 10, n * 10)
vulabel(n).Name = "label" & n.ToString
Me.Controls.Add(vulabel(n))
Next