Присвоить значения нескольким 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.5 из 5
Похожие ответы