Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
2 / 2 / 0
Регистрация: 30.09.2017
Сообщений: 82

Заполнение Label.tag

23.11.2018, 10:06. Показов 1790. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, делаю программу, мне необходимо перенести название из label1.text в Label.tag;
Тоесть у меня на форме 30 лейблов, в них есть текст, мне необходимо перенести текст каждого лейбла в его тег.




Просто,до этого я думал как перенести сразу множество названий label из 1 формы в другую, решил сделать через теги, получилось, я понимаю, что я могу заполнить теги в ручную, но хотелось бы сделать это через код.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.11.2018, 10:06
Ответы с готовыми решениями:

Заполнение нескольких Label одним нажатием кнопки
Пишу код и не как не могу додуматься до того чтобы сделать так, когда при нажатии на кнопку каждый раз заполнять лайблы пока все они не...

Заполнение множество Label через цикл for. При наведениие на объект сделать двойной щелчок мыши и tooltip на объект
Здравствуйте, подскажите. У меня на форме 118 объектов Label. Я заполняю их через цикл for(){}. Для label у меня есть функция создания...

Позиционирование label относительно другого label
Как разместить label относительно другого? Мне надо, чтобы label2 был правее пикселей на 40 label1

6
548 / 355 / 120
Регистрация: 17.08.2014
Сообщений: 1,351
23.11.2018, 10:51
darkvenger34,

можно как то так

где нужно заполнить tag текстом
C#
1
 Controls.OfType<Label>().ToList().ForEach(label =>  label.Tag = label.Text);
0
2 / 2 / 0
Регистрация: 30.09.2017
Сообщений: 82
23.11.2018, 11:28  [ТС]
Так, он просто заполняет тег 1 лейбла, а как сделать так, чтобы он заполнял сначала 1, потом 2 и т.д до 30.
Но конечно, можно эту строчку копировать и менять название лейбла, а как-то через цикл можно сделать?
Controls.OfType<Label>().ToList().ForEac h(label => label.Tag = label1.Text);
0
548 / 355 / 120
Регистрация: 17.08.2014
Сообщений: 1,351
23.11.2018, 12:02
darkvenger34,
вы попробуйте код сначала.
Он делает выборку всех контролов на форме или компоненте с типом label
C#
1
Controls.OfType<Label>()
преобразовывает его в список этих label
C#
1
.ToList()
далее проходится форич по элементам где каждому тегу элемента присваивается его текст.
C#
1
.ForEach(label => label.Tag = label.Text);
Добавлено через 2 минуты
коду выше аналогичен код

C#
1
2
3
4
5
6
7
8
9
10
  foreach (var control in Controls)
            {
                if (control is Label)
                {
                    var label = (control as Label);
                    label.Tag = label.Text;
 
                }
 
            }
Добавлено через 1 минуту
Цитата Сообщение от darkvenger34 Посмотреть сообщение
Controls.OfType<Label>().ToList().ForEac h(label => label.Tag = label1.Text);
в вашем коде ошибка вы изменили в конце код, а менять его не нужно было.
верните label1.Text на label.Text как было изначально.
1
2 / 2 / 0
Регистрация: 30.09.2017
Сообщений: 82
23.11.2018, 12:09  [ТС]
C#
1
2
3
4
5
6
7
8
9
foreach (var control in Controls)
            {
                if (control is Label)
                {
                    var label = (control as Label);
                    label.Tag = лейбл1.Text;
                  
 
                }
Весь этот код работает только с 1 строчкой, а у меня вопрос в том, как присвоить значения не для 1, а для 30 лейблов
если вставить новую стрчоку после" label.tag=лейбл1.text; " Вставляем например, label.tag = лейбл2.text, то 1 строчка почему-то перестает работать, и к лейблу присвается название второй.
Вообщем, если вы не понимаете , что я хочу сделать , то могу сказать.Может я не понятно отвечаю.
У меня на форме 30 лейблов в каждом лейбле есть название команды
мне просто нужно в каждый этот лейбл кинуть его название в тег.
Когда вставляю ваш код, он работает только для 1 стрчоки, а для остальных нет.
0
548 / 355 / 120
Регистрация: 17.08.2014
Сообщений: 1,351
23.11.2018, 12:37
darkvenger34,

Покажите свой код возможно что все остальные label находятся не на форме а на других контролах.

Добавлено через 21 минуту
Если это так , то.

Добавляем метод рекурсии

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 void TraverseControls(Control ctrl)
        {
            foreach (Control childCtrl in ctrl.Controls)
            {
 
                if (childCtrl is Label)
                {
                    var label = (childCtrl as Label);
                    label.Tag = label.Text;
 
                }
                TraverseControls(childCtrl);
            }
        }
в основном методе где нужно заполнить все лэйблы
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
   foreach (Control control in Controls)
            {
                if (control is Label)
                {
                    var label = (control as Label);
                    label.Tag = label.Text;
                   
                }
                else
                {
                    TraverseControls(control);
 
                }
 
            }
Должно сработать.
1
2 / 2 / 0
Регистрация: 30.09.2017
Сообщений: 82
23.11.2018, 23:43  [ТС]
Нет, у меня просто 30 лейблов на форме и мне нужно сделать код, не важно на какую кнопку, которая заполнит значение лейбл1.text-лейбл30.text тегами.
Ваш код попробую позже, отпишу получилось или нет, в любом случае спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.11.2018, 23:43
Помогаю со студенческими работами здесь

Нулевой Tag
в конструкторе записываю в теги контролов кое что, но при вызове событий в обработчике у меня в теге контролов уже ничего нет :( null что...

Второй tag
Всем привет! Народ подскажите, как решить задачку при клике по ноду передаю другому контролу значение tag, а мне еще надо передать...

Значения свойства Tag
Здравствуйте. Обьясните пожайлуста, что за значения свойства Tag. Где берется это значение, и что это за зверь такой. Спасибо.

Сравнение значений Tag
Я задаю теги pictureBox-ов c помощью массива ( pictureBox1.Tag = arr; pictureBox2.Tag = arr; ), потом мне нужно сравнить два тега ...

Обращение через tag
Создаю кнопки for (int i = 0; i &lt; 5; i++) for (int j = 0; j &lt; 5; j++) { Button...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru