Присвоить значения нескольким Label в цикле - Visual Basic .NET
Формулировка задачи:
Как создать массив элементов в runtime я умею. Суть вопроса:
Пусть у меня есть 10 Label. Каждая из них имеет свой размер, позицию, внешний вид заданные мною в дизайнере.
И есть массив Dim sng(9) As Single проинициализированный какими-либо реальными значениями, изменяющимися в цикле таймера.
Нужно сделать так, чтобы каждое реальное значение выводилось (разумеется с форматированием) в свою Label.
На VB-6 это достигалось сопоставлением в цикле индекса элемента (Label), заданным в DesignTime, с индексом массива вещественных чисел:
В VB.Net предлагается для подобного использовать свойство Tag (элемента Label), задаваемое программистом в DesignTime.
Но тогда для сопоставления Label с sng(Tag) нужно будет перебрать всю коллекцию Label, затем выделить из неё элемент(ы) с нужным мне Tag и только затем занести в найденную Label значение sng(Tag).
Значения в метки передаются в реальном времени 2-3 раза в секунду, неужели каждый раз перебирать всю коллекцию Label? Ведь на форме есть ещё масса элементов Label не имеющих никакого отношения к значениям массива sng.
Есть ещё один вариант решения вопроса: переписать из кода дизайнера атрибуты созданных меток и удалить эти метки в дизайнере, метки создавать заново в RunTime в виде массива инициализируя их предварительно списанными из кода дизайнера атрибутами.
А если меток 50? А если мы захотим подкорректировать дизайн?
Решение задачи: «Присвоить значения нескольким Label в цикле»
textual
Листинг программы
Dim arrLabel() As Label Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load arrLabel = New Label() {Label1, Label2, Label3, Label4 } arrLabel(0).Text = "123" End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д