Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
 
MairwunNx
0 / 0 / 0
Регистрация: 26.05.2018
Сообщений: 28
1

Циклом подписаться на событие с аргументом, на кнопочки по возрастанию

13.08.2018, 20:08. Просмотров 115. Ответов 2
Метки нет (Все метки)

Возможно я плохо назвал тему, суть в чем, есть допустим 50 кнопок, но для примера будет 4, каждая имеет название начиная с FUNC_0 а дальше ее номер, FUNC_01, FUNC_02 и так до 04.

У меня есть метод
C#
1
Change_func
с параметром
C#
1
(Button name)
В методе обычный код вызова месседж бокс для показа имени кнопки, с какой кликнул.
C#
1
MessageBox.show(name.ToString());
Для того что бы подписаться на метод Change_func нужно имя кнопки, и что бы каждый раз не подписывать в ручную

C#
1
2
3
FUNC_01.Click += Change_func(FUNC_01);
FUNC_02.Click += Change_func(FUNC_02);
FUNC_03.Click += Change_func(FUNC_03);
Я хотел бы это сделать циклом. Как я пытался собственно: Ужасно, но стоило.

Скриншот кода:
Циклом подписаться на событие с аргументом, на кнопочки по возрастанию
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.08.2018, 20:08
Ответы с готовыми решениями:

Как подписаться на событие
Доброго времени суток, cтоит задача при нажатии на кнопку формы с генерировать...

Подписаться на событие другого класса
class Table { ... this.ButtonChangedEvent += new...

Как подписаться на событие CollectionView.CollectionChanged?
Уважаемые Гуру! Требуется при изменении CollectionView (в результате...

Как подписаться на событие нажатие кнопки мыши. Не важно по какому контролу, простой щелчек
В общем хочу перехватить событие простого нажатие кнопки мыши. Что нибудь...

Подписаться на событие в бд
Здравствуйте. Есть ли механизмы в firebird с помощью которых можно было бы...

2
sau
1979 / 1590 / 259
Регистрация: 22.07.2011
Сообщений: 5,989
Завершенные тесты: 1
13.08.2018, 23:05 2
Так создаете экземпляр кнопки нормально и добавляете в контейнер , или если они декларативно обьявлены уже - ищите по идентификатору в контейнере через функцию перебора дочерних элементов.
Судя по коду на скриншоте , вам сперва сюда http://www.cyberforum.ru/csharp-beginners/
0
MairwunNx
0 / 0 / 0
Регистрация: 26.05.2018
Сообщений: 28
14.08.2018, 15:38  [ТС] 3
sau, хорошо, спасибо, я просто именно таким на занимался, вот и код такой и вышел.

Добавлено через 3 часа 16 минут
Короче, вот так сделал, все работает, вдруг кому понадобится.

C#
1
2
3
4
5
6
7
8
            foreach (Control ctr in grd.Children)
            {
                if (ctr is Button)
                {
                    Button btn = (Button)ctr;
                    btn.Click += (s, e) => Change_func(btn.Name.ToString());
                }
            }
Добавлено через 31 минуту
Потом переделал под это, если известны конкретные названия кнопочек.

C#
1
2
3
4
5
6
7
            Button[] gameControl = { FUNC_01, FUNC_02, FUNC_03 };
 
            foreach (Button ctr in gameControl)
            {
                Button btn = ctr;
                btn.Click += (s, e) => Change_func(btn.Name.ToString());
            }
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.08.2018, 15:38

Как подписаться на событие
Можете объяснить, как реализовывается подписка на событие? Может ли подписка...

Как подписаться на событие?
Доброго времени суток. Я делаю, что то не так, а что именно не знаю. Помогите...

Подписаться на событие изменения коллекции
Собственно как? Имеются такие коллекции List<string> scanUrls = new...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru