Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/25: Рейтинг темы: голосов - 25, средняя оценка - 4.96
178 / 68 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
1

Присвоить значения нескольким Label в цикле

04.08.2016, 08:26. Показов 4473. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как создать массив элементов в runtime я умею. Суть вопроса:
Пусть у меня есть 10 Label. Каждая из них имеет свой размер, позицию, внешний вид заданные мною в дизайнере.
И есть массив Dim sng(9) As Single проинициализированный какими-либо реальными значениями, изменяющимися в цикле таймера.

Нужно сделать так, чтобы каждое реальное значение выводилось (разумеется с форматированием) в свою Label.
На VB-6 это достигалось сопоставлением в цикле индекса элемента (Label), заданным в DesignTime, с индексом массива вещественных чисел:
Visual Basic
1
2
3
For i = 0 To 9
    Label(i).Caption = Format(sng(i),"0.00") 
Next i
В VB.Net предлагается для подобного использовать свойство Tag (элемента Label), задаваемое программистом в DesignTime.
Но тогда для сопоставления Label с sng(Tag) нужно будет перебрать всю коллекцию Label, затем выделить из неё элемент(ы) с нужным мне Tag и только затем занести в найденную Label значение sng(Tag).
Значения в метки передаются в реальном времени 2-3 раза в секунду, неужели каждый раз перебирать всю коллекцию Label? Ведь на форме есть ещё масса элементов Label не имеющих никакого отношения к значениям массива sng.

Есть ещё один вариант решения вопроса: переписать из кода дизайнера атрибуты созданных меток и удалить эти метки в дизайнере, метки создавать заново в RunTime в виде массива инициализируя их предварительно списанными из кода дизайнера атрибутами.
А если меток 50? А если мы захотим подкорректировать дизайн?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.08.2016, 08:26
Ответы с готовыми решениями:

Присвоить значение сразу нескольким Label-ам
Как присвоить значение сразу нескольким Label тоесть от Label1 по Label(n) :=j например ,...

Задать координаты нескольким Label в цикле
Всем доброго времени суток. возник вопрос такой: имеется 12 меток на Panel1, которым уже заданы...

Как обратиться к нескольким Label в цикле
у меня на форме есть n-ое количество лейблов. я хочу к ним всем обратится чтобы изменить свойства....

Как присвоить значения нескольким combobox?
Как присвоить значения нескольким combobox?Ну не могу никак понять

5
Заблокирован
04.08.2016, 08:45 2
Лучший ответ Сообщение было отмечено Yury Komar как решение

Решение

Не увидел никаких проблем
На форме три лэйбла с пронумерованными именами и обращение к ним по именам в таймере -
VB.NET
1
2
3
4
5
  Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    For i As Integer = 1 To 3
      Controls("Label" & i).Text = Format(Now, "mm:ss")
    Next
  End Sub
2
1589 / 662 / 225
Регистрация: 09.06.2011
Сообщений: 1,334
04.08.2016, 08:48 3
Лучший ответ Сообщение было отмечено jkrnd как решение

Решение

При инициализации пройдитесь по всем Label и создайте массив или список только нужных, далее работайте с ним ... или задайте его явно
VB.NET
1
Dim arrLabel() As Label = {Label1, Label2, Label3, Label4 }
1
178 / 68 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
04.08.2016, 09:32  [ТС] 4
Step_UA, при попытке применить Ваше решение получил следующее:
Миниатюры
Присвоить значения нескольким Label в цикле  
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
04.08.2016, 09:34 5
Лучший ответ Сообщение было отмечено jkrnd как решение

Решение

jkrnd, Инициализируйте массив меток тоже в загрузке

VB.NET
1
2
3
4
5
    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
2
178 / 68 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
04.08.2016, 09:46  [ТС] 6
Памирыч, задача решена
0
04.08.2016, 09:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.08.2016, 09:46
Помогаю со студенческими работами здесь

Присвоить значения нескольким переменным из одной
Всем привет! Напомните пожалуйста как на VB6 присвоить переменным a$ , b$ и с$ значения 'Раз' 'Два'...

Получть в label значения в цикле
Добрый день я новечек в WinApi , есть задача получать актальное значение переменной в ...

Как присвоить значения однотипным переменным в цикле?
Здравствуйте! В коде есть 14 переменных: Vopros1 , Vorpos2 ... Vopros14 Дальше хочу сделать...

Если значения переменных не равны то присвоить каждой сумму их значений, иначе присвоить переменным нулевые значения
uses crt; var x: integer; f1,f2: text; begin clrscr; assign(f1,'ishod.txt'); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru