Ескерім
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
События элементов управления (и для форм) обычно задаются с помощью Visual Studio Visual Designer для Windows Forms. Настройка события через визуальный конструктор называется обработкой события во время разработки. Вы также можете динамически обрабатывать события в коде, известном как обработка событий во время выполнения. Событие, созданное во время выполнения, позволяет динамически подключать обработчики событий на основе того, что в настоящее время делает ваше приложение.
Обработка события на этапе разработки дизайна
В Visual Studio используйте Visual Designer для управления обработчиками событий управления. Visual Designer создаст код обработчика и добавит его в событие.
Настройка обработчика
Используйте панель свойств , чтобы добавить или задать обработчик события.
Откройте визуальный конструктор формы, содержащей элемент управления для изменения.
Выберите элемент управления.
Измените режим панели свойств на режим панели событий , нажав кнопку "События" (
).
Найдите событие, в которое нужно добавить обработчик, например, событие Click:
Выполните одно из следующих действий:
Чтобы создать новый обработчик, дважды щелкните событие; если обработчик не назначен, он будет пустым. Если поле не пустое, это действие откроет код формы и перейдет к уже существующему обработчику.
Используйте поле выбора (
) для выбора существующего обработчика.
В поле выбора будут перечислены все методы, имеющие совместимую сигнатуру метода для обработчика событий.
Очистка обработчика
Чтобы удалить обработчик событий, недостаточно просто удалить код обработчика из файла связанного кода формы; конструктор все равно будет на него ссылаться. Используйте панель свойств , чтобы удалить обработчик события:
Откройте визуальный конструктор формы, содержащей элемент управления для изменения.
Выберите элемент управления.
Измените режим панели свойств на режим панели событий , нажав кнопку "События" (
).
Найдите событие, содержащее обработчик, который нужно удалить, например событие Click:
Щелкните событие правой кнопкой мыши и выберите Сброс.
Обработка события во время выполнения
Обычно обработчики событий добавляются в элементы управления во время разработки через визуальный конструктор. Однако можно создавать элементы управления во время выполнения, которые требуют добавления обработчиков событий в код. Добавление обработчиков в код также дает возможность добавить несколько обработчиков в одно событие.
Добавить обработчик
В следующем примере показано, как создать элемент управления и добавить обработчик событий. Этот элемент управления создается в обработчике событий Button.Click
другой кнопкой. При нажатии Button1. Код перемещает и изменяет размер новой кнопки. Событие Click
новой кнопки обрабатывается методом MyNewButton_Click
. Для появления новой кнопки её добавляют в коллекцию Controls
формы. Существует также код для удаления обработчика события Button1.Click
, это рассматривается в разделе Remove the handler.
private void button1_Click(object sender, EventArgs e)
{
// Create and add the button
Button myNewButton = new()
{
Location = new Point(10, 10),
Size = new Size(120, 25),
Text = "Do work"
};
// Handle the Click event for the new button
myNewButton.Click += MyNewButton_Click;
this.Controls.Add(myNewButton);
// Remove this button handler so the user cannot do this twice
button1.Click -= button1_Click;
}
private void MyNewButton_Click(object sender, EventArgs e)
{
}
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'Create and add the button
Dim myNewButton As New Button() With {.Location = New Point(10, 10),
.Size = New Size(120, 25),
.Text = "Do work"}
'Handle the Click event for the new button
AddHandler myNewButton.Click, AddressOf MyNewButton_Click
Me.Controls.Add(myNewButton)
'Remove this button handler so the user cannot do this twice
RemoveHandler Button1.Click, AddressOf Button1_Click
End Sub
Private Sub MyNewButton_Click(sender As Object, e As EventArgs)
End Sub
Чтобы запустить этот код, выполните следующие действия в форме с помощью Visual Studio Visual Designer:
- Добавьте новую кнопку в форму и назовите ее Button1.
- Измените режим области свойств на события, нажав кнопку события (
).
- Дважды щелкните событие Click, чтобы создать обработчик. Это действие открывает окно кода и создает пустой метод
Button1_Click
. - Замените код метода предыдущим кодом выше.
Дополнительные сведения о событиях C# см. в События (C#). Дополнительные сведения о событиях Visual Basic см. в События (Visual Basic).
Удалите обработчик
В разделе Добавление обработчика использовался некоторый код для демонстрации добавления обработчика. Этот код также содержал вызов для удаления обработчика:
button1.Click -= button1_Click;
RemoveHandler Button1.Click, AddressOf Button1_Click
Этот синтаксис можно использовать для удаления любого обработчика событий из любого события.
Дополнительные сведения о событиях C# см. в События (C#). Дополнительные сведения о событиях Visual Basic см. в События (Visual Basic).
Как использовать несколько событий с одинаковым обработчиком
В области свойств среды Visual Studio можно выбрать тот же обработчик, который уже используется другим событием. Следуйте указаниям в разделе Настройка обработчика, чтобы выбрать существующий обработчик вместо создания нового.
В C# обработчик присоединяется к событию элемента управления в коде конструктора формы, который изменяется с помощью Visual Designer. Дополнительные сведения о событиях в C# см. в События (C#)
Visual Basic
В Visual Basic обработчик присоединяется к событию элемента управления в файле кода формы, где объявляется код обработчика событий. Несколько ключевых слов Handles
можно добавить в код обработчика событий, чтобы использовать его с несколькими событиями. Визуальный конструктор создаст ключевое слово Handles
для вас и добавит его в обработчик событий. Однако вы можете легко сделать это самостоятельно для любого события и обработчика события элемента управления, если сигнатура метода обработчика совпадает с событием. Дополнительные сведения о событиях Visual Basic см. в разделе События (Visual Basic)
В этом коде показано, как один и тот же метод можно использовать в качестве обработчика для двух различных событий Button.Click
:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click, Button2.Click
'Do some work to handle the events
End Sub
См. также
.NET Desktop feedback