Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/58: Рейтинг темы: голосов - 58, средняя оценка - 4.69
310 / 57 / 7
Регистрация: 30.05.2012
Сообщений: 295

Один обработчик на несколько кнопок с их идентификацией

08.09.2012, 15:23. Показов 12349. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть несколько Button-ов: button1, button2, button3, button4, button5
и метод Method(int n)

мне нужно в обработчиках для кнопок вызывать этот метод, а в параметр передавать ему индекс button-a

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        private void button1_Click(object sender, EventArgs e)
        {
            if (условие)
            {
                Method(1);
            }
        }
 
       private void button2_Click(object sender, EventArgs e)
        {
            if (условие)
            {
                Method(2);
            }
        }
...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.09.2012, 15:23
Ответы с готовыми решениями:

Один обработчик на несколько кнопок
private void p7_Click(object sender, EventArgs e) { foreach (var item in this.Controls) { ...

Один обработчик на несколько кнопок
Всем привет. Пишу проект в Excel'e. Будет пользовательская форма - пара элементов и 4 кнопки. Нужно повесить на эти 4 кнопки примерно...

Один обработчик события на несколько кнопок
Привет, такой вопрос, как сделать в unity, к примеру 16 кнопок, и поставить им одно событие клик. Если вопрос никто не понял :cry:, а так и...

7
 Аватар для Монфрид
1245 / 1055 / 293
Регистрация: 07.03.2012
Сообщений: 3,247
08.09.2012, 16:24
что значит индекс? У Button2 индекс равен 2? можно парсить имя кнопки, а можно назначить у кнопок свойство Tag, и потом уже обращаться к нему:
C#
1
2
3
4
5
6
7
private void button2_Click(object sender, EventArgs e)
        {
            if (условие)
            {
                Method(Int.ToParse(Button2.Tag.ToString()));
            }
        }
1
310 / 57 / 7
Регистрация: 30.05.2012
Сообщений: 295
08.09.2012, 17:12  [ТС]
Цитата Сообщение от Монфрид Посмотреть сообщение
а можно назначить у кнопок свойство Tag
а как это сделать?

Добавлено через 49 секунд
все, понял, глупый вопрос

Добавлено через 1 минуту
а если этих кнопок много а обработчик для них один и тот же, только в метод разное значение передается, то можно как-то сократить код, обьединить обработчики для всех кнопок?

Добавлено через 3 минуты
Цитата Сообщение от Монфрид Посмотреть сообщение
Int.ToParse(Button2.Tag.ToString())
и смысл мне передавать в метод это если я могу написать просто 2.

Еще раз вопрос :
можно ли сократить код:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
 private void button1_Click(object sender, EventArgs e)
        {
            if (условие)
            {
                Method(1);
            }
        }
 private void button2_Click(object sender, EventArgs e)
        {
            if (условие)
            {
                Method(2);
            }
        }
 private void button3_Click(object sender, EventArgs e)
        {
            if (условие)
            {
                Method(3);
            }
        }
 private void button4_Click(object sender, EventArgs e)
        {
            if (условие)
            {
                Method(4);
            }
        }
 private void button5_Click(object sender, EventArgs e)
        {
            if (условие)
            {
                Method(5);
            }
        }
 private void button6_Click(object sender, EventArgs e)
        {
            if (условие)
            {
                Method(6);
            }
        }
 private void button7_Click(object sender, EventArgs e)
        {
            if (условие)
            {
                Method(7);
            }
        }
.....
Добавлено через 52 секунды
прошу прощения, вначале некорректно задал вопрос
0
Темная сторона .Net
 Аватар для Noob.net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
08.09.2012, 17:15
Цитата Сообщение от СерыйКардинал Посмотреть сообщение
а если этих кнопок много а обработчик для них один и тот же, только в метод разное значение передается, то можно как-то сократить код, обьединить обработчики для всех кнопок?
C#
1
2
3
4
5
6
7
8
 private void button_Click(object sender, EventArgs e)//это повесь на всех баттонКЛиках
        {
Button b = sender as Button;
            switch(b.Tag)
               case 1:
                Method(?);break; //понял,нет?
            }
        }
3
310 / 57 / 7
Регистрация: 30.05.2012
Сообщений: 295
08.09.2012, 17:20  [ТС]
Noob.net,

не понял.
что означает повесить на всех баттон кликах?
0
 Аватар для Монфрид
1245 / 1055 / 293
Регистрация: 07.03.2012
Сообщений: 3,247
08.09.2012, 17:22
ну в объектном инспекторе в VS перейди на вкладку Events кнопки и на событие Click(выбери из выпадающего списка) повесь этот обработчик на все кнопки
1
310 / 57 / 7
Регистрация: 30.05.2012
Сообщений: 295
08.09.2012, 17:25  [ТС]
спасибо, разобрался.
0
Темная сторона .Net
 Аватар для Noob.net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
08.09.2012, 17:41
Честно,можно еще проще,но я уже забыл,так как это у меня в куче кода где-то валяется
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.09.2012, 17:41
Помогаю со студенческими работами здесь

Один обработчик для 9 кнопок
Привет, ребята. Нужна Ваша помощь. Пишу небольшую обучающую программку. Вот в чем проблема. На форме имеется 9 кнопок, код для которых...

Один обработчик для динамических кнопок
Кнопки создаются/удаляются, и у них один OnClickListener. Но при нажатии, надо получить текст именно с той кнопки на которую нажали. Как...

Один обработчик для нескольких кнопок
Вопрос: Как для калькулятора создать один обработчик для цифровых кнопок (0-9), чтобы для каждой не писать ....+1 (+2) и т.д.

Много кнопок и один обработчик событий
Есть ли какой-то способ одним обработчиком событий воздействовать на множество кнопок, находящихся в массиве? Или для каждой кнопки писать...

Один обработчик для 100 кнопок?
На форме есть 100 кнопок. Как сделать один раз для всех кнопок, чтобы не описывать нажатие для каждой конкретной кнопки сто раз: ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru