Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
 Аватар для Sasser Update
0 / 0 / 1
Регистрация: 14.09.2016
Сообщений: 14

Оптимизация обработчиков кнопок

28.10.2016, 23:30. Показов 773. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Как оптимизировать программу, если на форме расположено много кнопок. (Допустим, все они имеют событие Click.) А код в кнопках различается на 1-2 строчки:
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)
        {
            textBox1.Text = "Маша";
            function();
        }
        private void button2_Click(object sender, EventArgs e)
        {
            textBox3.Text = "Паша";
            function();
        }
        private void button3_Click(object sender, EventArgs e)
        {
            textBox1.Text = "Катя";
            textBox2.Text = "Миша";
            function();
        }
Хочу знать как это делают настоящие программисты)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.10.2016, 23:30
Ответы с готовыми решениями:

Вынести код обработчиков кнопок в отдельный класс
Здравствуйте. Мальчики... возможно, и девочки, помогите. С#, Windows Form. Вот у меня есть работа с dataGridView. В принципе, все...

Из созданного массива кнопок одна из кнопок (9) должна выполнять метод Percent
Из созданного массива кнопок одна из кнопок (9) должна выполнять метод Percent, но после запуска выдаёт исключение "Ссылка на объект...

Создать массив кнопок, для каждой кнопок будет одинаковый обработчик
Всем привет! Нужна помощь в реализации такой задачи. Нужно создать массив кнопок, для каждой кнопок будет одинаковый обработчик...

2
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
29.10.2016, 00:47
Цитата Сообщение от Sasser Update Посмотреть сообщение
как это делают настоящие программисты
Как настоящие не знаю, но если код в обработчика идентичный - ко всем кнопкам привязывается один обработчик, внутри которого идентифицируется кнопка и вызывается нужные для нее код.
Для упрощения для хранения кода обработчиков можно использовать словарь с ключом типа string (имя кнопки) и значением типа Action (Action<T>), где значение - выполняемый метод (возможно, через анонимный метод/лямбда).
1
 Аватар для Sasser Update
0 / 0 / 1
Регистрация: 14.09.2016
Сообщений: 14
29.10.2016, 15:01  [ТС]
Благодарю за ответ, но свою проблему решил простеньким кодом:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
        private void AllButtons_Click(object sender, EventArgs e)
        {
            Button Button = (sender as Button);
            switch (Button.Text)//по тексту на кнопке
            {
                case "b1"://лично для этой кнопки имеющий текст b1
                    MessageBox.Show("Case 1");
                    break;
                case "b2"://лично для этой кнопки имеющий текст b2
                    MessageBox.Show("Case 2");
                    break;
            }
            //для всех кнопок имеющих это событие
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.10.2016, 15:01
Помогаю со студенческими работами здесь

Как определить индексы соседних кнопок в массиве кнопок?
Массив кнопок 10*10,при нажатии на кнопку она меняет цвет,и соседние с ней тоже.Сама кнопка меняет цвет,а как определить индексы соседних? ...

Несколько обработчиков событий
Ситуация следующая, имеется несколько обработчиков различных событий, когда события зажгутся не известно. Есть новый метод, логику...

Очистка обработчиков события
Доброго времени суток! Уважаемые друзья, уже пару суток пытаюсь нагуглить как с помощью рефлексии вытащить все обработчики,...

Динамическая создание обработчиков событий
Суть в следующем. На формочку динамически накидываются ЧекБоксы. Они представляют собой категории и подкатегории. Необходимо чтобы при...

Создание обработчиков для клика
Здраствуйте. в программе по клику кнопки button2 создается и заполняется неким образом таблица, также создаются текстбокс и кнопка login,...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru