Події (Visual Basic), Microsoft Docs

Хоча можна уявити проект Visual Studio як набір процедур, виконуваних у певній послідовності, насправді більшість програм керуються подіями, тобто потік виконання визначається зовнішніми впливами, званими подіями.

Під подією в даному випадку мається на увазі сигнал, що повідомляє додатку, що сталося щось важливе. Наприклад, коли користувач клацає елемент управління на формі, форма може ініціювати подію Click і викликати процедуру, що обробляє подію. Події також допускають взаємодію окремих завдань. завдання сортування окремо від основного додатка. Якщо користувач скасовує сортування, то програма може надіслати подію скасування, яке зупинить процес сортування.

Терміни та основні поняття для подій

У цьому розділі описуються терміни та поняття, пов'язані з використанням подій у Visual Basic.

Оголошення подій

Події у класах, структурах, модулях та інтерфейсах оголошуються за допомогою ключового слова Event, як показано в наступному прикладі.

Створення подій

Події повинні викликатися в рамках класу, модуля або структури, де вони оголошені. Наприклад, похідний клас не може викликати події, успадковані з базового класу.

Відправники подій

Будь-який об'єкт, здатний викликати події, є відправником подій, також званим джерелом подій. Форми, елементи управління та об'єкти користувача є прикладами відправників подій.

Обробники подій

Обробники подій - це процедури, що викликаються при виникненні відповідної події. Можна використовувати будь-які допустимі підпрограми з відповідною сигнатурою вяк оброблювач подій.Функція, проте, може бути використана як оброблювач подій, оскільки повернення значення джерело події з її допомогою неможливе.

Visual Basic використовується стандартне положення про іменування обробників подій. Ім'я має складатися з імені відправника події, символу підкреслення та імені події. Наприклад, подія Click кнопки з ім'ям button1 матиме ім'я Sub button1_Click.

Примітка

Рекомендується дотримуватися положення про іменування при визначенні обробників подій для подій, але це необов'язково, можна використовувати будь-яке допустиме ім'я підпрограми.

Зв'язування подій з їх обробниками

Щоб обробник подій був готовий до використання, його необхідно пов'язати з подією за допомогою оператора Handles або AddHandler.

Оператор WithEvents та пропозиція Clause

Інструкція WithEvents та умова Handles надають декларативний спосіб завдання обробників подій.

Застосування оператора WithEvents та пропозиції Handles часто є найкращим варіантом для обробників подій, оскільки використовуваний ними декларативний синтаксис робить обробку події простіше для кодування, читання та налагодження.

Оскільки загальні події не пов'язуються з екземплярами класу, не можна використовувати WithEvents для декларативної обробки загальних подій. Не можна також використовувати WithEvents або Handles для обробки подійзі Structure.В обох випадках для обробки цих подій можна використовувати оператор AddHandler.

Неможливо створити масиви змінних WithEvents.

Змінні WithEvents дозволяють одному обробнику подій обробляти один або кілька видів подій або кільком обробникам подій обробляти один вид подій.

Хоча умова Handles є стандартним способом зв'язування події з обробником, зв'язок за допомогою нього може здійснюватись лише під час компіляції.

У деяких випадках, наприклад, коли події пов'язані з формами або елементами керування, Visual Basic автоматично задіяє порожній обробник подій і зіставляє його з подією. для командної кнопки, як у наступному коді:

Оператори AddHandler та RemoveHandler

Оператор AddHandler аналогічний умові Handles в тому, що обидва дозволяють задавати обробник подій. або події структури, слід використовувати AddHandler.

AddHandler приймає два аргументи: ім'я події від відправника подій, наприклад елемента управління, і вираз, що визначає делегат. викликаним об'єктом.

RemoveHandler, від'єднує подію від оброблювача подій, використовуючи при цьому той самийсинтаксис, як і AddHandler.Приклади.

У наступному прикладі обробник подій пов'язується з подією, подія відбувається. Обробник подій перехоплює подію та виводить повідомлення.

Потім перший обробник подій видаляється і з подією зіставляється інший обробник подій. Коли подія відбувається вдруге, виводиться інше повідомлення.

Нарешті, другий обробник подій видаляється, а подія відбувається втретє. Оскільки тепер немає пов'язаного з подією обробника подій, нічого не відбувається.

Обробка подій, успадкованих із базового класу

Похідні класи — це класи, які успадковують характеристики базового класу і можуть обробляти події, ініційовані їх базовим класом, за допомогою оператора HandlesMyBase.

Обробка подій базового класу

Пов'язані розділи

Опис процесу створення процедури оброблювача подій.

Показано, як визначити подію користувача, що дозволяє її обробникам подій викликатися асинхронно.

Показано, як визначити подію користувача, яка використовує пам'ять тільки при обробці події.

Список загальних питань, пов'язаних із обробниками подій у успадкованих компонентах.

Містить загальні відомості про модель подій у .NET Framework.

Описує способи роботи з подіями, пов'язаними з об'єктами Windows Forms.

Містить загальні відомості про делегатів Visual Basic.