Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
6 / 6 / 1
Регистрация: 09.02.2016
Сообщений: 296

Как быстро переименовать несколько элементов

17.09.2018, 10:34. Показов 3120. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Работаю в Visual Studio 2017. Требуется создать несколько форм с большим количеством текстбоксов и лейблов. Имена задаются по шаблону: "TB_Koeff_x" или "L_Koeff_x" где "x" - порядковый номер. В каждой форме таких лейблов и текстбоксов будет около сотни. Как известно, при создании нового элемента ему дается имя по умолчанию, а переименовывать сотни элементов - дело не самое приятно)
Как можно быстро переименовать элементы по заданному шаблону и возможно ли такое в принципе?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.09.2018, 10:34
Ответы с готовыми решениями:

Как переименовать сразу несколько Label?
Как можно переименовать программно несолько элементов Label ? У меня в базе данных firebird есть названия пунтктов. Хочу Работать на...

Как быстро переименовать 100 кнопок
У меня в программе есть100 кнопок, и мне нужно каждое из их имен именовать от 0 до 99. btn0, btn1, btn2,...btn98, btn99 Вручную слишком...

Как быстро и правильно создать ИМ за несколько месяцев?
Как быстро и правильно создать ИМ за несколько месяцев? Не первый год хочу создать хороший ИМ. Один сайт нам создавала студия под...

8
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
17.09.2018, 11:00
Насколько мне известно, встроенными средствами студии это сделать невозможно.
Но можно написать простейший скрипт, который регексом ищет все свежесозданные элементы в исходниках <Form>.cs/<Form>.Designer.cs и заменяет их по указанному шаблону.
1
 Аватар для PoPsa85
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
17.09.2018, 11:00
a13428711, Добавить программно
C#
1
2
3
4
5
6
7
8
9
10
11
Label[] lb = new Label[10];
            for (int i = 0; i < 10; i++)
            {
                lb[i] = new Label();
                lb[i].Location = new Point(100 + 100 * i, 100);
                lb[i].Size = new Size(10, 100);
                lb[i].Name = "Label" + i.ToString();
                lb[i].Text = "Label" + i.ToString();
 
                this.Controls.Add(lb[i]);
            }
1
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18258 / 14183 / 5366
Регистрация: 17.03.2014
Сообщений: 28,870
Записей в блоге: 1
17.09.2018, 11:02
a13428711, проще создать по одному массиву TB_Koeff, L_Koeff, заполнить его в конструкторе и использовать индекс элемента вместо номера.
1
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
17.09.2018, 12:13
Цитата Сообщение от PoPsa85 Посмотреть сообщение
Добавить программно
Цитата Сообщение от OwenGlendower Посмотреть сообщение
проще создать по одному массиву TB_Koeff, L_Koeff
Не очень удобно, если хочется в дизайнере править.
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10425 / 5155 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
17.09.2018, 12:58
Цитата Сообщение от a13428711 Посмотреть сообщение
В каждой форме таких лейблов и текстбоксов будет около сотни
Можете также посмотреть это решение https://www.cyberforum.ru/post12872315.html
0
 Аватар для Wolflind
127 / 107 / 31
Регистрация: 17.03.2016
Сообщений: 445
Записей в блоге: 1
17.09.2018, 13:12
Цитата Сообщение от kolorotur Посмотреть сообщение
Не очень удобно, если хочется в дизайнере править.
как по мне наоборот удобней в таких количествах особенно если нужно со всех считать значение проще по массиву пройти

но еще лучше вынести их во отдельный элемент usercontrol

Добавлено через 7 минут
а потом этот массив выставить наружу лучше
можно например так

C#
1
2
3
private ICollection<TextBox> _TB_Koeff_arr
public this string [int index] => _TB_Koeff_arr[index].Text
public this TB_Koeff [string index] => _TB_Koeff_arr.Find(x => name == index).Text
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
17.09.2018, 13:39
Цитата Сообщение от Wolflind Посмотреть сообщение
как по мне наоборот удобней
Я про само расположение элементов на форме — не удобно это в коде делать, а в дизайнере при таком подходе их не будет видно.
А так элементы уже изначально в массиве — свойство Controls формы.
0
 Аватар для Wolflind
127 / 107 / 31
Регистрация: 17.03.2016
Сообщений: 445
Записей в блоге: 1
17.09.2018, 14:42
Цитата Сообщение от kolorotur Посмотреть сообщение
Я про само расположение элементов на форме
учитывая что элементов так много я более чем уверен что они в виде таблички или столбце
в таком случаи можно тот же TableLayoutPanel или FlowLayoutPanel использовать и даже если нет
то все равно по какой то логике расположены и тогда можно просто поделить как я и говорил на usercontrol
работать в разу удобней чем с кучай текст боксов и лейблов
говорю из опыта писал программы с сложными UI и удобней их поделить по небольшим своим контролем
и поддерживать удобней
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.09.2018, 14:42
Помогаю со студенческими работами здесь

Как быстро подключить сразу несколько include
Нужно сделать так, чтобы # include &quot;название .h&quot; включала в себя #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;vector&gt;...

Как быстро перемещать несколько окон (форм) одновременно?
Приложение образует несколько окон (не меньше 20), в которых что-то происходит. Как перемещать все эти окна одновременно также быстро,...

Как быстро рисовать на TCanvas, разбитый на фрагменты, в несколько потоков
Суть проблемы. Создаётся картинка, состоящая из большого количества (миллионы) графических примитивов (в основном -закрашенные разным...

Как быстро пропинговать несколько хостов, например, локальную сеть?
Друзья! Батник такого содержания работает несколько секунд. А ведь тут всего 10 (!) адресов: ping -n 1 -l 1 -i 10 192.168.1.1 ping...

Переименовать несколько файлов
Доброго вечера, уважаемые форумчане! Очень прошу вас о помощи в выполнение следующего задания. Есть несколько файлов f1, f2, f3, ..., ff1,...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru