Как мне динамически создать список элементов управления или меток, которые имеют те же свойства, что и ранее существовавший VB.net

Когда я пытаюсь создать список ярлыков с теми же свойствами, что и ранее существовавший, используя приведенный ниже код, в то время как я получаю список из 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

Как я уже сказал, кажется, что в итоге я получил только один ярлык.
Я долго искал ответ.

Заранее спасибо.


person David K    schedule 13.09.2013    source источник


Ответы (1)


В итоге вы получите список из 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

Если вы хотите также отображать метки, вам нужно добавить их в коллекцию элементов управления контейнера (например, форму, панель, групповое окно).

person Heslacher    schedule 13.09.2013
comment
Heslacher, вы уверены, что нельзя скопировать свойства с одной этикетки на другую всего за один раз? @Хеслахер - person David K; 13.09.2013
comment
Поскольку ни Control, ни Label не реализуют интерфейс IClonable, да, я уверен, насколько это возможно. - person Heslacher; 13.09.2013
comment
Хорошо, я думаю, это не конец света, но я должен сказать, что я удивлен. Большое спасибо. - person David K; 13.09.2013