Практическое руководство. Создание обработчиков событий для Windows Forms во время выполнения
Обновлен: Ноябрь 2007
Помимо создания событий с помощью конструктора Windows Forms, можно также создать обработчик событий во время выполнения. Это позволяет подключать обработчики событий не при запуске программы, а в зависимости от условий, возникающих в коде во время выполнения.
Чтобы создать обработчик событий во время выполнения, выполните следующие действия.
Откройте форму, к которой требуется добавить обработчик событий, в редакторе кода.
Добавьте в форму метод с подписью для события, которое необходимо обработать.
Например, для обработки события Click элемента управления Button создайте метод, как показано ниже.
Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) ' Add event handler code here. End Sub
private void button1_Click(object sender, System.EventArgs e) { // Add event handler code here. }
private void button1_Click(System.Object sender, System.EventArgs e) { // Add event handler code here. }
private: void button1_Click(System::Object ^ sender, System::EventArgs ^ e) { // Add event handler code here. }
Добавьте в обработчик событий код, соответствующий приложению.
Определите, для какой формы или элемента управления требуется создать обработчик событий.
Для метода в классе формы добавьте код, который определяет обработчик событий для обработки события. Например, в следующем фрагменте кода определен обработчик событий button1_Click, который служит для обработки события Click элемента управления Button.
AddHandler Button1.Click, AddressOf Button1_Click
button1.Click += new EventHandler(button1_Click);
button1.add_Click(new EventHandler(button1_Click));
button1->add_Click(gcnew System::EventHandler(this, &Form1::button1_Click));
Метод AddHandler, представленный в примере кода Visual Basic, создает обработчик событий нажатия кнопки.
См. также
Задачи
Устранение неполадок, связанных с унаследованными обработчиками событий, в Visual Basic
Основные понятия
Обзор обработчиков событий (Windows Forms)