46 / 46 / 12
Регистрация: 03.08.2012
Сообщений: 215
1

Как получить индекс динамически созданного button при нажатии

01.01.2013, 19:38. Показов 3023. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
создаю циклом button:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 for (int i = 1; i <= 10; i++)
            {
                Button b = new Button();
 
                b.Left = x;
                b.Top = y;
                b.Size = BtnSize;
                b.Parent = this;
                b.Tag = i; 
                b.Click += Button_Click;
 
                if ((i % Width) == 0)
                {
                    x = Left;
                    y += Top + BtnSize.Height;
                }
                else
                {
                    x += Left + BtnSize.Width;
                }
            }
обработчик клика:
C#
1
2
3
4
private void Button_Click(object sender, EventArgs e)
        {
                 int y;
        }
как можно в обработчике клика, в переменную y записать индекс нажатого button?
т.е. если был нажат 1 buuton, y = 1.
если 6, то y = 6....
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.01.2013, 19:38
Ответы с готовыми решениями:

Получить текст из динамически созданного TextBox
Доброго дня форумчане! Не могу получить введенный текст в динамически созданного TextBox ...

При нажатии на Button каждый раз создается новый компонент (button/label/textbox)
Как реализовать?

Создание button без заднего фона, и подключение коротких звуков при нажатии button
Т.к. я только начинающий юзер C#, хотел бы спросить, если кто сможет подсказать, как убрать задний...

Как вывести текст в Label при нажатии Button?
Как сделать метод чтобы при введении числа в textBox1 и введении знака в textBox2 и введении x в...

4
179 / 179 / 32
Регистрация: 23.11.2012
Сообщений: 344
Записей в блоге: 1
01.01.2013, 20:10 2
C#
1
y = (int)((sender as Button).Tag);
2
14 / 14 / 4
Регистрация: 31.12.2012
Сообщений: 71
01.01.2013, 20:36 3
Цитата Сообщение от Doomer3D Посмотреть сообщение
C#
1
y = (int)((sender as Button).Tag);
а можешь объяснить как ты так лихо сделал??
0
46 / 46 / 12
Регистрация: 03.08.2012
Сообщений: 215
01.01.2013, 20:43  [ТС] 4
а если точно так же создавать PictureBox.
почему в обработчике клика не хочет работать вот этот код?
C#
1
(sender as PictureBox).Image = img[1];
все, разобрался. не тут ошибка была.
0
179 / 179 / 32
Регистрация: 23.11.2012
Сообщений: 344
Записей в блоге: 1
02.01.2013, 10:05 5
Цитата Сообщение от Lirik5 Посмотреть сообщение
а можешь объяснить как ты так лихо сделал??
В любом событии вида EventHandler первый аргумент (sender) как правило передает в себе источник события. Если вы нажали на кнопку, sender - это та самая кнопка, если изменили текст в TextBox'е, это текстовое поле передается как sender. Поэтому, когда вы вешаете на несколько событий один обработчик, sender позволяет узнать, какой из объектов сгенерировал свойство.

C#
1
y = (int)((sender as Button).Tag);
C#
1
sender as Button
Так мы приводим тип объекта sender к типу "кнопка" (как вариант, можно было сделать sender as Control)
C#
1
(sender as Button).Tag
Нас интересует свойство Control.Tag - туда автор записывал идентификатор кнопки
C#
1
(int)((sender as Button).Tag)
Очередное преобразование типа, Tag - это свойство типа object, а нам надо int, но писать Tag as int нельзя.

Надеюсь, стало понятнее?
1
02.01.2013, 10:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.01.2013, 10:05
Помогаю со студенческими работами здесь

Как добавить дочерний узел в treeview при нажатии на button
Как добавить дочерний узел в treeview при нажатие на button? понимаю что нужно сначало выделить...

Как из textbox1 вывести написанный текст в textbox2 при нажатии button?
Добрый день! Как мне из textbox1 вывести текст на textbox2 при нажатии на button?

Требуется ли очистка ресурсов при удалении динамически созданного контрола?
Нужно ли очищать ресурсы и отключать подписку на события при удалении контролов созданных...

Как сделать на button чтобы при нажатии открывалось окно с выбором файла?
Не знаю как реализовать в коде следующую задачу: по нажатию на button должно открываться окно с...


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

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

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