0

当我尝试使用下面的代码创建一个与预先存在的标签具有相同属性的标签列表时,虽然我最终得到了一个包含 10 个项目的列表,但它们最终都具有相同的名称,并且最终只有一个显示的标签。
我怀疑我最终会得到一个指向同一标签的 10 个“指针”列表。(但我一有机会就使用“新”这个词:))

Dim lblList As New List(Of Label)
  For I = 0 To 9
    lblList.Add(New Label)
    lblList(I) = lblExistingLabelWithDesiredProperties
    lblList(I).Name = "lblName" & I.ToString
    lblList(I).Left = 30 + I * 10
  Next

正如我所说,我似乎最终只有一个标签。
我一直在寻找答案。

提前致谢。

4

1 回答 1

0

您最终会得到一个包含 10 个对同一标签的引用的列表。
如果要使用初始标签的部分/全部属性填充新标签,则需要将它们分配给新创建的标签,例如:

Dim lblList As New List(Of Label)
For I = 0 To 9
  lblList.Add(New Label)
  ' assign the properties
  lblList(I).Top = lblExistingLabelWithDesiredProperties.Top
  lblList(I).Text = lblExistingLabelWithDesiredProperties.Text
  ' and so on
  lblList(I).Name = "lblName" & I.ToString
  lblList(I).Left = 30 + I * 10
Next

如果您还想显示标签,您需要将它们添加到容器的控件集合中(例如,表单、面板、组框)。

于 2013-09-13T09:15:01.547 回答