Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/29: Рейтинг темы: голосов - 29, средняя оценка - 4.59
5 / 5 / 0
Регистрация: 23.07.2013
Сообщений: 112
1

Обратиться к элементу управления по имени в строковом представлении

12.05.2015, 18:05. Показов 5758. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго времени суток. У меня возник такой вопрос:
У нас есть button с именем button_for_function_hash_sum и еще несколько кнопок с таким же началом (button_for_function_) но другим продолжением.
Собственно вот и сам вопрос:
C#
1
2
string strTest = "hash_sum";
("button_for_function_" + strTest).Text = "Complete";
есть ли способ как то так обращаться к элементу?
На ответ что зачем парится просто прямо указывай каждую кнопку говорю сразу, мне нужно ни 10 функции для каждой кнопки, а одна универсальная
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.05.2015, 18:05
Ответы с готовыми решениями:

Обратиться к кнопке по имени в строковом представлении
Как я могу изменить текст на кнопке, имея имя кнопки в переменной string? (string s = "button1")

Обращение к форме по ее имени в строковом представлении
Вообщем есть около 10 ссылок форму.//не перечисление,ничего + //неизвестно пусты ли они,но не в...

Можно ли обратиться к объекту формы по имени в строковом виде
Возник вопрос по поводу, возможно ли обратиться к объекту формы через переменную, так это бы...

Как обратиться к элементу по имени?
Привет! Пример из ФАКа (Controls as TextBox).Text = "newText"; работает отлично, но когда...

10
Эксперт .NET
6508 / 4085 / 1605
Регистрация: 09.05.2015
Сообщений: 9,551
12.05.2015, 19:35 2
Ну так задайте один обработчик события для всех кнопок, а в нем:
C#
1
2
Button b = sender as Button;
b.Text = "Complete";
0
5 / 5 / 0
Регистрация: 23.07.2013
Сообщений: 112
12.05.2015, 19:40  [ТС] 3
Someone007, у меня нету в данной функции параметра sender
0
Эксперт .NET
6508 / 4085 / 1605
Регистрация: 09.05.2015
Сообщений: 9,551
12.05.2015, 19:51 4
Цитата Сообщение от Yamakasi009 Посмотреть сообщение
Someone007, у меня нету в данной функции параметра sender
У обработчика события нажатия кнопки всегда есть 2 параметра, первый из них sender. Покажите код.
0
5 / 5 / 0
Регистрация: 23.07.2013
Сообщений: 112
12.05.2015, 19:53  [ТС] 5
Someone007, у меня не обработчик событий, у меня отдельная функция
0
Эксперт .NET
6508 / 4085 / 1605
Регистрация: 09.05.2015
Сообщений: 9,551
12.05.2015, 19:58 6
Лучший ответ Сообщение было отмечено Yamakasi009 как решение

Решение

Цитата Сообщение от Yamakasi009 Посмотреть сообщение
Someone007, у меня не обработчик событий, у меня отдельная функция
Тем более, чтобы не гадать что у вас там написано показывайте код. Функция то наверняка не сама по себе, а вызывается откуда то? Еще можно через массив Controls формы...
C#
1
(this.Controls["имя"] as Button).Text = "XXX";
1
5 / 5 / 0
Регистрация: 23.07.2013
Сообщений: 112
12.05.2015, 20:08  [ТС] 7
Someone007, там функция которая вызывается с помощью Thread именно поэтому sender не может быть, а ваш вариант подходит только у меня нашлась другая проблема, в WPF нету такого параметра ну я думаю что сам это решу
0
Эксперт .NET
6508 / 4085 / 1605
Регистрация: 09.05.2015
Сообщений: 9,551
12.05.2015, 20:15 8
Цитата Сообщение от Yamakasi009 Посмотреть сообщение
Someone007, там функция которая вызывается с помощью Thread именно поэтому sender не может быть, а ваш вариант подходит только у меня нашлась другая проблема, в WPF нету такого параметра ну я думаю что сам это решу
Вы создали топик в разделе Windows Forms, а не WPF. Не путайте людей.

В WPF как-то так можно через FindName:
C#
1
2
3
var obj = FindName("textBox1");
 
(obj as TextBox).Text = "123";
1
5 / 5 / 0
Регистрация: 23.07.2013
Сообщений: 112
12.05.2015, 20:20  [ТС] 9
Я нашел чуть по лучше, вот так:
C#
1
ProgressBar pb = this.FindName("ProgressBar1") as ProgressBar;
0
Эксперт .NET
6508 / 4085 / 1605
Регистрация: 09.05.2015
Сообщений: 9,551
12.05.2015, 20:23 10
Цитата Сообщение от Yamakasi009 Посмотреть сообщение
Я нашел чуть по лучше
Так это тоже самое, просто записано в 1 строку...
0
5 / 5 / 0
Регистрация: 23.07.2013
Сообщений: 112
12.05.2015, 21:01  [ТС] 11
Someone007, не опытный пользователь так и оставит в две строчки
0
12.05.2015, 21:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.05.2015, 21:01
Помогаю со студенческими работами здесь

Обратиться к элементу управления на другой форме
У меня такой не странный вопрос, как из одного окна в другом выключить кнопку? Если делаем так: ...

Обратиться к элементу управления другой формы
Как добавить данные, например из textbox расположенного на form2, добавить к таблицы datagridview...

Как обратиться к элементу управления из другого потока
Всем доброго времени суток! Делаю клиент серверное приложение, где несколько пользователей могут...

Название переменной в строковом представлении
Здравствуйте. Возникла проблема, а именно, имеется класс с кучей переменных, которые использует...


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

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