- Creating Event Handlers in Windows Forms
- In This Section
- Related Sections
- Event Handler Делегат
- Определение
- Параметры
- Примеры
- Комментарии
- Методы расширения
- Практическое руководство. Создание обработчиков событий для Windows Forms во время выполнения How to: Create Event Handlers at Run Time for Windows Forms
- Создание обработчика событий во время выполнения Create an event handler at run time
- Обзор обработчиков событий (Windows Forms) Event Handlers Overview (Windows Forms)
- Создание обработчиков событий в Windows Forms Creating Event Handlers in Windows Forms
- в этом разделе In This Section
- Связанные разделы Related Sections
Creating Event Handlers in Windows Forms
An event handler is a procedure in your code that determines what actions are performed when an event occurs, such as when the user clicks a button or a message queue receives a message. When an event is raised, the event handler or handlers that receive the event are executed. Events can be assigned to multiple handlers, and the methods that handle particular events can be changed dynamically. You can also use the Windows Forms Designer in Visual Studio to create event handlers.
In This Section
Events Overview
Explains the event model and the role of delegates.
Event Handlers Overview
Describes how to handle events.
How to: Create Event Handlers at Run Time for Windows Forms
Gives directions for responding to system or user events dynamically.
How to: Connect Multiple Events to a Single Event Handler in Windows Forms
Gives directions for assigning the same functionality to multiple controls through events.
Order of Events in Windows Forms
Describes the order in which events are raised in Windows Forms controls.
How to: Create Event Handlers Using the Designer Describes how to use the Windows Forms Designer to create event handlers.
Related Sections
Events
Provides links to topics on handling and raising events using the .NET Framework.
Troubleshooting Inherited Event Handlers in Visual Basic
Lists common issues that occur with event handlers in inherited components.
Event Handler Делегат
Определение
Представляет метод, обрабатывающий событие, не имеющее данных. Represents the method that will handle an event that has no event data.
Параметры
Источник события. The source of the event.
Объект, не содержащий данных события. An object that contains no event data.
Примеры
В следующем примере показано событие с именем ThresholdReached , связанное с EventHandler делегатом. The following example shows an event named ThresholdReached that is associated with an EventHandler delegate. Метод, назначенный EventHandler делегату, вызывается в OnThresholdReached методе. The method assigned to the EventHandler delegate is called in the OnThresholdReached method.
Комментарии
Модель событий в платформа .NET Framework основана на наличии делегата события, соединяющего событие с его обработчиком. The event model in the .NET Framework is based on having an event delegate that connects an event with its handler. Для вызова события необходимы два элемента: To raise an event, two elements are needed:
Делегат, определяющий метод, который предоставляет ответ на событие. A delegate that identifies the method that provides the response to the event.
При необходимости — класс, содержащий данные события, если событие предоставляет данные. Optionally, a class that holds the event data, if the event provides data.
Делегат — это тип, определяющий сигнатуру, то есть тип возвращаемого значения и типы списка параметров для метода. The delegate is a type that defines a signature, that is, the return value type and parameter list types for a method. Можно использовать тип делегата для объявления переменной, которая может ссылаться на любой метод с той же сигнатурой, что и делегат. You can use the delegate type to declare a variable that can refer to any method with the same signature as the delegate.
Стандартная сигнатура делегата обработчика событий определяет метод, который не возвращает значение. The standard signature of an event handler delegate defines a method that does not return a value. Первый параметр этого метода имеет тип Object и ссылается на экземпляр, который вызывает событие. This method’s first parameter is of type Object and refers to the instance that raises the event. Второй параметр является производным от типа EventArgs и содержит данные события. Its second parameter is derived from type EventArgs and holds the event data. Если событие не создает данные события, второй параметр — это просто значение EventArgs.Empty поля. If the event does not generate event data, the second parameter is simply the value of the EventArgs.Empty field. В противном случае второй параметр является типом, производным от, EventArgs и предоставляет все поля или свойства, необходимые для хранения данных события. Otherwise, the second parameter is a type derived from EventArgs and supplies any fields or properties needed to hold the event data.
EventHandlerДелегат — это предопределенный делегат, который специально представляет метод обработчика событий для события, которое не создает данные. The EventHandler delegate is a predefined delegate that specifically represents an event handler method for an event that does not generate data. Если событие создает данные, необходимо использовать универсальный EventHandler класс делегата. If your event does generate data, you must use the generic EventHandler delegate class.
Чтобы связать событие с методом, который будет выполнять обработку события, добавьте в событие экземпляр делегата. To associate the event with the method that will handle the event, add an instance of the delegate to the event. Обработчик событий вызывается всякий раз, когда происходит событие, если делегат не удален. The event handler is called whenever the event occurs, unless you remove the delegate.
Дополнительные сведения о делегатах обработчиков событий см. в разделе обработка и вызов событий. For more information about event handler delegates, see Handling and Raising Events.
Методы расширения
Получает объект, представляющий метод, представленный указанным делегатом. Gets an object that represents the method represented by the specified delegate.
Практическое руководство. Создание обработчиков событий для Windows Forms во время выполнения How to: Create Event Handlers at Run Time for Windows Forms
Помимо создания событий с помощью конструктор Windows Forms в Visual Studio можно также создать обработчик событий во время выполнения. In addition to creating events using the Windows Forms Designer in Visual Studio, you can also create an event handler at run time. Это позволит подключать обработчики событий в зависимости от условий в коде во время выполнения, а не при начальном запуске программы. This action allows you to connect event handlers based on conditions in code at run time as opposed to having them connected when the program initially starts.
Создание обработчика событий во время выполнения Create an event handler at run time
Откройте форму, в которую нужно добавить обработчик событий. Open the form that you want to add an event handler to.
Добавьте метод в форму с сигнатурой метода для события, которое будет необходимо обрабатывать. Add a method to your form with the method signature for the event that you want to handle.
Например, при обработке Click события Button элемента управления необходимо создать метод, подобный следующему: For example, if you were handling the Click event of a Button control, you would create a method such as the following:
Добавьте код в обработчик событий в зависимости от приложения. Add code to the event handler as appropriate to your application.
Определите форму или элемент управления, для которого необходимо создать обработчик событий. Determine which form or control you want to create an event handler for.
В методе внутри класса формы добавьте код, в соответствии с которым обработчик событий будет обрабатывать событие. In a method within your form’s class, add code that specifies the event handler to handle the event. Например, следующий код указывает обработчик событий button1_Click , обрабатывающий Click событие Button элемента управления: For example, the following code specifies the event handler button1_Click handles the Click event of a Button control:
Обзор обработчиков событий (Windows Forms) Event Handlers Overview (Windows Forms)
Обработчик событий — это метод, привязанный к событию. An event handler is a method that is bound to an event. При возникновении события выполняется код в обработчике событий. When the event is raised, the code within the event handler is executed. Каждый обработчик событий предоставляет два параметра, которые позволяют правильно управлять событием. Each event handler provides two parameters that allow you to handle the event properly. В следующем примере показан обработчик событий для Button события элемента управления Click . The following example shows an event handler for a Button control’s Click event.
Первый параметр, sender предоставляет ссылку на объект, который вызвал событие. The first parameter, sender , provides a reference to the object that raised the event. Второй параметр, e , в приведенном выше примере, передает объект, относящийся к обрабатываемому событию. The second parameter, e , in the example above, passes an object specific to the event that is being handled. Ссылаясь на свойства объекта (и иногда его методы), можно получить такие сведения, как расположение мыши для событий мыши или данных, передаваемых в событиях перетаскивания. By referencing the object’s properties (and, sometimes, its methods), you can obtain information such as the location of the mouse for mouse events or data being transferred in drag-and-drop events.
Обычно каждое событие создает обработчик событий с другим типом объекта события для второго параметра. Typically each event produces an event handler with a different event-object type for the second parameter. Некоторые обработчики событий, например MouseDown MouseUp события и, имеют один и тот же тип объекта для второго параметра. Some event handlers, such as those for the MouseDown and MouseUp events, have the same object type for their second parameter. Для этих типов событий можно использовать один и тот же обработчик событий для обработки обоих событий. For these types of events, you can use the same event handler to handle both events.
Можно также использовать один и тот же обработчик событий для обработки одного и того же события для различных элементов управления. You can also use the same event handler to handle the same event for different controls. Например, если RadioButton в форме имеется группа элементов управления, можно создать один обработчик событий для Click события и связать событие каждого элемента управления Click с одним обработчиком событий. For example, if you have a group of RadioButton controls on a form, you could create a single event handler for the Click event and have each control’s Click event bound to the single event handler. Дополнительные сведения см. в разделе руководство. Подключение нескольких событий к одному обработчику событий в Windows Forms. For more information, see How to: Connect Multiple Events to a Single Event Handler in Windows Forms.
Создание обработчиков событий в Windows Forms Creating Event Handlers in Windows Forms
Обработчик событий — это процедура в коде, определяющая, какие действия должны выполняться при возникновении тех или иных событий, например, если пользователь нажимает кнопку или сообщение поступает в очередь. An event handler is a procedure in your code that determines what actions are performed when an event occurs, such as when the user clicks a button or a message queue receives a message. При порождении события запускается получивший его обработчик или несколько обработчиков. When an event is raised, the event handler or handlers that receive the event are executed. События могут назначаться сразу нескольким обработчикам, а методы, которые управляют конкретными событиями, можно изменять динамически. Events can be assigned to multiple handlers, and the methods that handle particular events can be changed dynamically. Для создания обработчиков событий также можно использовать конструктор Windows Forms в Visual Studio. You can also use the Windows Forms Designer in Visual Studio to create event handlers.
в этом разделе In This Section
Общие сведения о событиях Events Overview
Объясняет модель событий и роли делегатов. Explains the event model and the role of delegates.
Общие сведения об обработчиках событий Event Handlers Overview
Описывает порядок обработки событий. Describes how to handle events.
Практические руководства. Создание обработчиков событий во время выполнения для Windows Forms How to: Create Event Handlers at Run Time for Windows Forms
Динамически выдает инструкции по реагированию на системные или пользовательские события. Gives directions for responding to system or user events dynamically.
Как подключить несколько событий к одному обработчику событий в Windows Forms How to: Connect Multiple Events to a Single Event Handler in Windows Forms
Выдает инструкции по назначению одной и той же функциональности нескольким элементам управления с помощью событий. Gives directions for assigning the same functionality to multiple controls through events.
Порядок событий в Windows Forms Order of Events in Windows Forms
Описывает порядок порождения событий в элементах управления Windows Forms. Describes the order in which events are raised in Windows Forms controls.
Инструкции. Создание обработчиков событий с помощью конструктора Описывает, как использовать конструктор Windows Forms для создания обработчиков событий. How to: Create Event Handlers Using the Designer Describes how to use the Windows Forms Designer to create event handlers.
Связанные разделы Related Sections
Событиях Events
Содержит ссылки на разделы, посвященные обработке и вызову событий с помощью .NET Framework. Provides links to topics on handling and raising events using the .NET Framework.
Устранение неполадок унаследованных обработчиков событий в Visual Basic Troubleshooting Inherited Event Handlers in Visual Basic
Представляет распространенные проблемы, возникающие у обработчиков событий в наследуемых компонентах. Lists common issues that occur with event handlers in inherited components.