Connecting Multiple Events to a Single Event Handler in Windows Forms
In your application design, you may find it necessary to have a single event handler used for multiple events or the multiple events fire the same procedure. For example, it is often a powerful time-saver to have a menu command fire the same event as a button on your form does if they expose the same functionality. You can do this by using the Events view of the Properties window in C# or using the
Handles keyword and the Class Name and Method Name drop-down boxes in the Visual Basic Code Editor.
To connect multiple events to a single event handler in Visual Basic
- Right-click the form and choose View Code.
- From the Class Name drop-down box, select one of the controls that you want to have the event handler handle.
- From the Method Name drop-down box, select one of the events that you want the event handler to handle.
- The Code Editor inserts the appropriate event handler and positions the insertion point within the method. In the example below, it is the Click event for the Button control.
' Visual Basic Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'Add Event Handler Code Here End Sub
- Append the other events you would like handled to the
' Visual Basic Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click 'Add Event Handler Code Here End Sub
- Add the appropriate code to the event handler.
To connect multiple events to a single event handler in C#
- Select the control to which you want to connect an event handler.
- In the Properties window, click the Events button ().
- Click the name of the event that you want to handle.
- In the value section next to the event name, click the drop-down button to display a list of existing event handlers that match the method signature of the event you want to handle.
- Select the appropriate event handler from the list.
Code will be added to the form to bind the event to the existing event handler.