Путь разработчика    

Использование обработчика событий для нескольких элементов управления в C#


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

Во-первых, переместить общий код в отдельный метод и заставить все обработчики событий вызвать этот метод. Этот метод прост и эффективен, но он по-прежнему дает вам несколько разных обработчиков событий, которые на самом деле мало что делают.

Другим подходом является создание одного обработчика событий, который может выполнять работу для всех элементов управления. Затем в конструкторе форм выберите элементы управления, нажмите кнопку «События» в окне «Свойства» (маленький молния), выберите событие, откройте раскрывающийся список справа и выберите обработчик событий. Теперь все элементы управления используют один и тот же обработчик событий для события.

Когда вы применяете этот подход, обработчик событий часто должен знать, какой элемент управления фактически поднял событие. Вы можете использовать параметр sender, чтобы понять это.

Следующий код обрабатывает Button Нажмите события для трех кнопок кнопки. Он преобразует параметр sender в Button, который поднял событие, а затем использует свойство Button Text для посмотрите, какая кнопка Button была нажата.

Python

Вместо использования свойства Text отправителя вы можете использовать свойство Tag элемента управления. Или вы можете сравнить sender с элементами управления напрямую, как в следующем коде:

Python

Источник: http://csharphelper.com/blog/2014/09/use-an-event-handler-for-multiple-controls-in-c/



Отзывы (через Facebook):

Оставить отзыв с помощью аккаунта FaceBook:

Основа для карточной игры в C#

Цель этого примера - предоставить некоторую поддержку для создания карточной игры. В нем показано, как сделать класс для представления карт и рассказать, к...

13 11 2019 14:34:57

HashMap в Java

В терминах компьютерного программирования карта представляет собой набор ассоциаций между парами объектов. Java HashMap - это базовая реализация интерфейса...

12 11 2019 16:31:25

Пространство имен в C#

Пространства имен - это программные элементы C#, предназначенные для организации ваших программ. Они также помогают избежать столкновений имен между двумя...

11 11 2019 9:10:28

1С-программирование как дважды два. Самоучитель (Михайлов Сергей)

Книга "1 С-программирование как дважды два. Самоучитель" основана на личном опыте предпринимательской деятельности автора в сфере 1 С-программирования. Начин...

10 11 2019 0:46:31

Эндрю Стиллмен - Изучаем C#, 3-е издание - 2014

В отличие от большинства книг по программированию, построенных на основе скучного изложения спецификаций и примеров, с этой книгой читатель сможет сразу пр...

09 11 2019 11:10:35

With в Python

В python ключевое слово with используется при работе с неуправляемыми ресурсами (например, файловыми потоками). Инструкция for упрощает обработку исключени...

08 11 2019 22:36:31

Как сделать две формы открытыми друг друга в C#

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

07 11 2019 17:14:20

Используйте ColorMatrix для добавления водяного знака к изображению на C#

Пример Добавьте водяной знак к изображению в C# объясняет, как добавить полупрозрачный водяной знак к изображению. Этот пример делает то же самое в немного...

06 11 2019 15:24:30

Перебрать записи в массиве неизвестной длины в C#

Один из способов циклического перемещения элементов в массиве состоит в том, чтобы жестко закодировать его длину в программе. В качестве альтернативы вы мо...

05 11 2019 21:15:23

Как защитить код Python?

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

04 11 2019 5:47:21

Найти египетские фракции в C#

Египетская фракция представляет собой долю, выраженную в виде суммы отдельных единичных дробей. Например, вы можете написать 3/7 как 1/3 + 1/11 + 1/231. Вы...

03 11 2019 10:53:29

Доступность проверенных узлов TreeView в C#

В предыдущем примере использовалась рекурсия для перемещения узлов в элементе управления TreeView и заполнения списка проверяемыми узлами. В этом примере и...

02 11 2019 9:37:26

Сделать общий класс очереди приоритетов в C#

В этом примере показано, как создать общий класс очереди приоритетов. Общий класс похож на обычный класс, за исключением того, что он может принимать один...

01 11 2019 5:43:51

Преобразование Int в String в C#

В этой статье мы напишем программу в C# для преобразования Integer в String с использованием метода ToString(). Вывод:  ...

31 10 2019 1:33:23

Языки программирования для создания игр

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

30 10 2019 17:20:19

Бизли Д. Python. Подробный справочник (4-е издание, 2010)

Авторитетное руководство и детальный путеводитель по языку программирования Python предназначен для практикующих программистов. Книга компактна, нацелена н...

29 10 2019 8:30:41

Добавить варианты ComboBox во время выполнения в C#

В этом примере вы можете добавить ComboBox варианты, когда пользователь выбирает их во время выполнения. Чтобы отслеживать выбор для будущего использования...

28 10 2019 5:16:46

Формы размера, чтобы соответствовать их содержимому в C#

В этом примере показано, как размер форм подходит для их содержимого. Выяснить, как форматы размера могут быть сложными, особенно если форма содержит MenuS...

27 10 2019 14:11:47

Как генерировать случайные целые числа в определенном диапазоне в Java

В Java 1.7 или более поздней версии стандартный способ сделать это выглядит следующим образом: min: минимальное значение max: максимальное значение Пример...

26 10 2019 4:16:46

Что такое ключевое слово instanceof в Java?

Java instanceof - это ключевое слово. Это двоичный оператор, используемый для проверки, является ли объект (экземпляр) подтипом данного типа. Он возвращает...

25 10 2019 18:47:59

Отображение перспективного изображения в C#

Некоторое время назад кто-то спросил меня, как он может отображать изображение в WPF с одной стороны, меньшей, чем другая, чтобы создать визуальный вид пер...

24 10 2019 12:53:57

Размеры файлов анализа в KB, MB, GB и т. д. В C#

Пример Формат файлов формата в К Б, М Б, Г Б и т. д. В C# показывает, как преобразовать число в строку, отформатированную в К Б, М Б и т. д. Этот пример делает...

23 10 2019 16:28:36

Используйте полосу прокрутки для выбора нецелых значений в C#

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

22 10 2019 19:56:38

Измерьте позиции символов при рисовании длинных строк в C#

Пример Измерение позиций символов в нарисованном строка в C# использует метод Graphics класса GraphicsCharacterRanges для поиска позиций, в которых будут р...

21 10 2019 5:12:41

Печать в полном масштабе на C#

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

20 10 2019 8:34:52

Сделать меню во время выполнения для приложения WPF в C#

В этом примере показано, как вы можете создавать меню во время выполнения и добавлять их в приложение WPF. Обычно вы создаете пользовательский интерфейс пр...

19 10 2019 8:10:37

Ассемблер на примерах. Базовый курс (Рудольф Марек)

Эта книга рассказывает о двух основных режимах работы процессора, которые обязан знать каждый профессионал программирования. Тут будет описываться работа и...

18 10 2019 1:29:43

Нарисуйте прокладку Аполлония в C#

Пример Найти круги, которые касаются трех заданных кругов (проблема Аполлония) в C# , показывают, как найти до восьми кругов, которые касаются трех заданны...

17 10 2019 14:24:36

Как создать инвентарь в Unity 5 при помощи UI с выбором предмета

В этом уроке мы разберем как создать инвентарь для RPG игр (или их подобрых) с выбором предмета в Unity 5 при помощи UI. И реализуем их динамическую выгруку...

16 10 2019 15:53:25

Создание, чтение и запись текстового файла в C#

В этой статье мы напишем программу в C# для создания, чтения и записи текстового файла. Обычно есть два режима доступа к файлам: текстовый и двоичный. В те...

15 10 2019 14:57:15

В чем разница между final, finally и finalize?

final в Java Финал - это ключевое слово, и его можно использовать для обозначения переменной «неизменяемый». Фактически, он используется для применения огр...

14 10 2019 2:53:19

Философия Java (Брюс Эккель)

Java нельзя понять, взглянув на него только как на коллекцию некоторых характеристик, - необходимо понять задачи этого языка как частные задачи программиро...

13 10 2019 7:11:21

Что такое ссылки на методы в Java?

Ссылки на методы являются признаком Java 8. Самое большое дополнение в Java8 - это лямбда-выражения. Ссылка на метод - это сокращенный синтаксис выражения...

12 10 2019 5:53:15

Получение значения переменных по имени в C#

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

11 10 2019 14:24:29

Сделать класс фракции в C#

Класс Fraction представляет рациональные числа с использованием дробей, по крайней мере, до тех пор, пока числители и демониторы не станут слишком большими...

10 10 2019 11:30:45

Перетаскивание текста в C#

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

09 10 2019 16:10:56

Используйте значок уведомления, чтобы захватить изображение на экране в C#

Одна проблема с базовой программой захвата экрана заключается в том, что она сидит где-то на экране, поэтому изображение, которое она захватывает, включает...

08 10 2019 18:18:26

Позвольте пользователю писать с различными стилями линии в C#

Пример Позвольте пользователю набросать на PictureBox в C# объясняет, как разрешить пользователю рисовать полилинии, но программа только рисует тонкие черн...

07 10 2019 16:25:41

Использование EXIF для ориентации изображения на C#

Пример Прочитайте ориентацию EXIF файла изображения данные на C# показывают, как читать информацию о ориентации EXIF с изображения. Используя эту информаци...

06 10 2019 11:21:13

Как преобразовать TimeStamp в Date в Java?

API JDBC использует отдельный класс Date, Time и Timestamp для подтверждения типа данных DATE, TIME и DATETIME из базы данных, но большая часть объектно-ор...

05 10 2019 3:32:34

Как преобразовать TimeStamp в Date в Java?

API JDBC использует отдельный класс Date, Time и Timestamp для подтверждения типа данных DATE, TIME и DATETIME из базы данных, но большая часть объектно-ор...

04 10 2019 13:54:59

Расположите форму в нижнем правом углу экрана в C#

Свойство Screen.PrimaryScreen.WorkingArea дает размер рабочей области основного экрана. ( Для получения дополнительной информации см. Получить рабочую облас...

03 10 2019 6:18:56

Язык программирования С++ (Б. Страуструп)

Книга Б. Страуструпа " Язык программирования С++" дает описание языка, его ключевых понятий и основных приемов программирования на нем. Это завершенное руко...

02 10 2019 7:54:43

Сделайте кнопку с картинкой под ней в C#

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

01 10 2019 16:13:38

Switch в Java Синтаксис и примеры

Оператор switch используется для выполнения различных действий на основе разных условий. Оператор switch Java работает с байтовыми, короткими, char и int п...

30 09 2019 22:39:42

Метод Contains() в Java

Java String contains()- метод чтобы проверить, содержит ли String указанную последовательность символов. Этот метод возвращает логический тип данных, котор...

29 09 2019 16:46:22

Преобразование массива байтов в целое число и обратно в C#

Класс BitConverter предоставляет статические методы, которые позволяют преобразовывать различные типы данных в и из массивов байтов. ( Я полагаю, что было б...

28 09 2019 5:54:33

Создаем динамические веб-сайты с помощью PHP, MySQL, JavaScript, CSS и HTML5. 3-е изд. (Робин Никсон)

Это популярное и доступное пособие поможет вам уверенно освоить динамическое веб-программирование с применением самых современных языков и технологий: PHP,...

27 09 2019 11:38:42

Введение в потоки Thread в Java

В чем разница между Reader и InputStream в Java Процесс представляет собой экземпляр выполняемой компьютерной программы. Процесс может выполняться процессо...

26 09 2019 9:14:31

Что такое виртуальная машина Java?

Java Virtual Machine (JVM) - это спецификация, предоставляющая среду выполнения, в которой может быть запущен Java-байт-код. Как следует из названия, JVM д...

25 09 2019 16:58:46

Почему Java не поддерживает перегрузку оператора?

Java не «нуждается» в перегрузке оператора, потому что это просто выбор, сделанный его создателями, которые хотели сохранить язык более простым. В отличие...

24 09 2019 10:16:25

Нарисуйте гистограмму с подсказками в C#

Пример Нарисуйте простую гистограмму в C# , объясните, как нарисовать простую гистограмму. Когда вы нажимаете на панель, эта программа отображает окно сооб...

23 09 2019 22:12:23

Нарисуйте цветное колесо в C#

В программе используется PathGradientBrush, чтобы заполнить цветовое колесо цветовыми образцами. Рисование колеса в основном автоматическое, но прикладывае...

22 09 2019 20:34:56

Ассемблер - это просто. Учимся программировать. (Калашников О. А.)

Подробно и доходчиво объясняются все основные вопросы программирования на ассемблере. Рассмотрены команды процессоров Intel, 16- и 32-разрядные регистры, о...

21 09 2019 9:13:31

Метод Split() в Java

Есть ситуация, когда строки содержат несколько фрагментов информации, тогда нам нужно разбить строку, чтобы извлечь отдельные фрагменты. Строки в Java можн...

20 09 2019 10:45:52

Эффект радуги изображения в C#

Этот пример расширяет сообщение Использовать объект ImageAttributes для применения общих цветовых тонов к изображению на C# для радуги изображения. Он отби...

19 09 2019 1:57:32

Генерация слов заданной длины в C#

Пример Создание трехбуквенных слов в C# использует три вложенных цикла для генерации слов, содержащих три буквы. В этом примере используется следующий код...

18 09 2019 1:57:15

Разрешить ограниченный выбор CheckBox в C#

Обычно пользователь может проверить или снять флажок CheckBox независимо от других параметров. Это сообщение показывает, как вы можете разрешить ограниченн...

17 09 2019 9:40:19

Класс Java HashSet

Класс HashSet расширяет AbstractSet и реализует заданный интерфейс. Набор представляет собой набор, который не содержит повторяющихся элементов и элементы...

16 09 2019 15:30:40

Нарисуйте кривую с несколькими цветами в C#

Достаточно легко рисовать разные линии с разными цветами, но не так просто рисовать одну строку, которая использует несколько цветов. Один из способов доби...

15 09 2019 14:53:43

TreeMap в Java

Класс TreeMap реализует интерфейс карты, аналогичный классу HashMap. Он сохраняет свои записи в порядке возрастания, отсортированные в соответствии с естес...

14 09 2019 3:37:22

Объявлять и инициализировать пустые массивы в C#

Это удобный трюк для работы с возможными пустыми массивами. Программа C# не может использовать свойства и методы массива, пока не будет создан экземпляр ма...

13 09 2019 1:31:57

Методы в C#

Методы также называются функциями. Методы позволяют определить логику в одном месте и использовать ее в нескольких местах. Синтаксис: В будущих статьях мы...

12 09 2019 22:47:42

Как объекты становятся пригодными для сбора мусора в Java?

Объект не станет кандидатом на сбор мусора, пока все ссылки на него не будут отброшены. Объект отмечен как имеющий право на сбор мусора, когда он больше не...

11 09 2019 22:26:31

Класс Java StringBuilder

Java StringBuilder идентичен StringBuffer, за исключением одного важного различия, которое не синхронизировано, это означает, что он не является потокобезо...

10 09 2019 6:54:50

Самоучитель C++ (Г. Шилдт)

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

09 09 2019 4:13:41

Управление торговлей 1С:8.2. Редакция 11. Внедрение и применение (Тенгиз Куправа) 2012

Книга " Управление торговлей 1 С:8.2. Редакция 11. Внедрение и применение" раскрывает вопросы внедрения и применения принципиально нового продукта компании 1...

08 09 2019 3:31:54

Сделайте простую гистограмму в C#

В этом примере показана гистограмма, показывающая распределение случайных значений, которые моделируют прокатку двух 6-сторонних кубиков. Во время разработ...

07 09 2019 1:34:22

Целевое окно, как минимизировать, увеличить или восстановить его в C#

Это первая в серии записей, которая позволяет одному приложению манипулировать целевым окном в другом приложении. Обратите внимание, что это не то, что Mic...

06 09 2019 10:13:48

Как нарисовать анимированный текст в C#

Обратите внимание, что результат в исполняемом файле лучше, чем результат, предоставляемый GIF справа. GIF немного отрывистый, потому что он использует тол...

05 09 2019 4:41:30

Используйте очередь для рисования двоичного дерева с шириной первого цвета в C#

Пример Нарисуйте ширину в ширину двоичное дерево в C# показывает, как использовать Stack для рисования двоичного дерева в порядке глубины. Программа создае...

04 09 2019 23:45:46

Является ли JavaScript истинным языком ООП?

В объектно-ориентированном программировании есть три основные особенности: инкапсуляция, наследование и полиморфизм. Инкапсуляция: инкапсуляция относится к...

03 09 2019 19:14:57

Почему множественное наследование не поддерживается в Java

Это просто устранить двусмысленность, поскольку множественное наследование может вызвать двусмысленность вокруг проблемы Diamond в нескольких сценариях. На...

02 09 2019 18:32:31

Существует ли файл или каталог в Python

Os.path.isfile (путь) Возвращает True , если путь существующий обычный файл. Пример: Если файл «my_file.txt» существует в текущем пути, он вернет true else...

01 09 2019 7:45:43

Что означает __name __ == '__ main__' в Python?

Как и в других языках программирования, Python также имеет точку входа для выполнения, т. е. Main. Модуль - это файл, содержащий определения и утверждения...

31 08 2019 20:17:11

Петля над массивом неизвестного измерения в C#

Предыдущий пост Loop над записями в массиве неизвестной длины в C# объясняет, как перебирать записи в одномерном или двумерном массиве, но что вы будете де...

30 08 2019 19:46:23

Алгоритм Brute-Force в C#

В этой статье мы узнаем о реализации алгоритма в C# Brute-Force.Brute-force search или исчерпывающий поиск, также известный как генерация и тест,...

29 08 2019 23:35:17

Нарисуйте кривую с резко очерченными цветами в C#

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

28 08 2019 21:33:16

Заменить текст, соответствующий шаблону в C#

В этом примере используется следующий код для замены текста, соответствующего шаблону в строке. Этот код создает объект Regex, передавая его конструктору ш...

27 08 2019 9:17:42

Оператор Java break и continue

Иногда желательно пропустить некоторые утверждения внутри цикла или немедленно завершить цикл, не проверяя тестовое выражение. В таких случаях мы можем исп...

26 08 2019 12:38:24

Сделайте методы расширения subarray в C#

Метод Array класса Array класса может копировать подмассив из одного массива в другой, но для этого требуется выяснить, сколько элементов вы хотите скопиро...

25 08 2019 16:14:31

Уникальные слова в файле Microsoft Word в C#

Этот пример является модификацией более раннего сообщения Перечислить уникальные слова в файле Microsoft Word на C# . Эта программа считывает слова в текст...

24 08 2019 12:46:36

Многопользовательские игры. Разработка сетевых приложений (Глейзер Дж.)

Многопользовательские игры. Разработка сетевых приложений: Сетевые многопользовательские игры — это многомиллиардный бизнес, привлекающий десятки миллионов...

23 08 2019 9:10:38

Есть ли способ убить поток в Python?

В Python вы просто не можете убить Thread. Убийство нити устраняет любые гарантии, которые пытаются установить / окончательно блокировать, чтобы вы могли з...

22 08 2019 19:58:17

Смотрите, где парабола и гипербола пересекаются в C#

В этом примере показано, как пересекаться парабола и гипербола. Предыдущий пример из четырех частей здесь , здесь < / a>, здесь , и здесь объясняет, как на...

21 08 2019 8:40:38

Случайный цвет для прокладки Аполлония в C#

Этот пример похож на пример Нарисуйте прокладку Аполлония в C# < / a> за исключением того, что он заполняет круги, которые он рисует со случайными цветами....

20 08 2019 15:20:15

Может ли класс верхнего уровня быть закрытым или защищенным в Java

Нет. Класс верхнего уровня как закрытый был бы совершенно бесполезен, потому что ничто не имело бы к нему доступа. Если класс верхнего уровня объявлен как...

19 08 2019 9:59:19

Создание вашей первой программы на Python

Запуск Pytthon Interpreter После установки интерпретатор python живет в установленной директории. На компьютерах Windows установка Python обычно помещается...

18 08 2019 2:42:23

Запустите приложение DOS и запишите его вывод в C#

Этот код создает объект ProcessStartInfo для хранения информации о процессе, который он должен запустить. Затем он создает объект Process, устанавливает ег...

17 08 2019 13:12:24

Отобразить диалоговые формы многократного использования в C#

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

16 08 2019 14:30:11

Инициализация ComboBox из перечисления в C#

Часто полезно инициализировать ComboBox из перечисления, чтобы пользователь мог выбрать одно из значений перечисления. Вы можете ввести значение в ComboBox...

15 08 2019 1:53:57

Отображение диалога выбора шрифта с кнопкой Apply в C#

Иногда приложение отображает диалоговое окно выбора шрифта с кнопкой Apply. Если вы нажмете эту кнопку, приложение покажет, как это будет выглядеть, если в...

14 08 2019 10:48:42


Parse error: syntax error, unexpected ',' in /home/users/9/9161484547/domains/flash-mx.ru/lessons/926.php on line 69